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)
Андан кийин гана, каналда ишенимдүү жазууга жана окууга болот.