Sobes.tech
Junior — Middle

Ի՞նչ կլինի, եթե փորձեք կարդալ տվյալներ այն ալիքից, որը դեռ չի սկսվել։

sobes.tech AI

Պատասխան AI-ից

Եթե փորձեք կարդալ տվյալներ Go-ում չհիմնավորված ալիքից (այսինքն՝ nil), ապա ընթերցման գործողությունը հավերժորեն կլոկավորվի: Սա կհանգեցնի այն բանին, որ այդ ալիքից ընթերցող գորուտինան կկանգնի, քանի որ ալիքը գոյություն չունի և տվյալներ փոխանցել չի կարող:

Օրինակ՝

var ch chan int // ch-ն nil է

func main() {
    fmt.Println(<-ch) // հավերժորեն կլոկավորվում է
}

Այսից խուսափելու համար, ալիքը պետք է սկսվի make-ի միջոցով, օրինակ՝ ch := make(chan int)։