Junior — Middle
Co się stanie, jeśli wykonasz operację zapisu na pustym (nil) kanale w języku Go?
sobes.tech AI
Odpowiedź od AI
Jeśli spróbujesz zapisać wartość do kanału nil w Go, program zostanie na zawsze zablokowany (deadlock). Dzieje się tak, ponieważ kanał nil nie jest zainicjalizowany i nie może przyjmować ani wysyłać wartości.
Przykład:
var ch chan int // ch == nil
func main() {
ch <- 1 // tutaj program się zawiesi
}
Aby tego uniknąć, kanał należy zainicjalizować za pomocą make, na przykład:
ch := make(chan int)
Dopiero po tym można bezpiecznie pisać i czytać z kanału.