Sobes.tech
Junior — Middle

Go тилинде бош (nil) каналга жазуу операциясын жүргүзсөңүз эмне болот?

sobes.tech AI

AIден жооп

Go-да nil каналына маанини жазууга аракет кылсаңыз, программа эч качан токтоп калат (deadlock). Бул nil-канал ишке киргизилбегендиктен жана маанилерди кабыл алуу же жөнөтүү мүмкүнчүлүгү жок болгондуктан болот.

Мисал:

var ch chan int // ch == nil

func main() {
    ch <- 1 // бул жерде программа токтоп калат
}

Булдан качуу үчүн, каналды make аркылуу баштоо керек, мисалы:

ch := make(chan int)

Андан кийин гана, каналда ишенимдүү жазууга жана окууга болот.