Sobes.tech
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.