Junior — Middle
Ի՞նչ կլինի, եթե փորձեք կարդալ տվյալներ այն ալիքից, որը դեռ չի սկսվել։
sobes.tech AI
Պատասխան AI-ից
Եթե փորձեք կարդալ տվյալներ Go-ում չհիմնավորված ալիքից (այսինքն՝ nil), ապա ընթերցման գործողությունը հավերժորեն կլոկավորվի: Սա կհանգեցնի այն բանին, որ այդ ալիքից ընթերցող գորուտինան կկանգնի, քանի որ ալիքը գոյություն չունի և տվյալներ փոխանցել չի կարող:
Օրինակ՝
var ch chan int // ch-ն nil է
func main() {
fmt.Println(<-ch) // հավերժորեն կլոկավորվում է
}
Այսից խուսափելու համար, ալիքը պետք է սկսվի make-ի միջոցով, օրինակ՝ ch := make(chan int)։