Junior — Middle
რა მოხდება, თუ სცადავთ მონაცემების წაკითხვას არხიდან, რომელიც ჯერ არ არის ინიციალიზებული?
sobes.tech AI
პასუხი AI-სგან
Եթե փորձեք կարդալ տվյալներ Go-ում չհիմնավորված ալիքից (այսինքն՝ nil), ապա ընթերցման գործողությունը հավերժորեն կլոկավորվի: Սա կհանգեցնի այն բանին, որ այդ ալիքից ընթերցող գորուտինան կկանգնի, քանի որ ալիքը գոյություն չունի և տվյալներ փոխանցել չի կարող:
Օրինակ՝
var ch chan int // ch nil է
func main() {
fmt.Println(<-ch) // հավերժական լոկացիա
}
Այսից խուսափելու համար, ալիքը պետք է սկսվի make-ի միջոցով, օրինակ՝ ch := make(chan int)։