Senior
Какво се случва при запис в неинициализиран (nil) канал?
sobes.tech AI
Отговор от AI
В Go записът в неинициализиран (nil) канал води до блокиране на горутината завинаги, тъй като nil-каналът не е готов да приема или изпраща данни.
Пример:
var ch chan int // ch == nil
func main() {
ch <- 1 // блокира завинаги, тъй като каналът е nil
}
Това поведение понякога се използва за динамично включване/изключване на канали в select, тъй като операциите с nil-канал никога не се изпълняват и блокират горутината.