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