Sobes.tech
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)

Միայն այդ ժամանակ կարող եք անվտանգ գրել և կարդալ ալյումից։