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)
Само след това е безопасно да пишете и четете от канала.