Junior — Middle
Co się stanie, jeśli spróbujesz odczytać dane z kanału, który nie został jeszcze zainicjalizowany?
sobes.tech AI
Odpowiedź od AI
Jeśli spróbujesz odczytać dane z kanału w Go, który nie został zainicjalizowany (czyli jest nil), operacja odczytu zablokuje się na zawsze. Spowoduje to, że goroutine próbująca czytać z takiego kanału się zawiesi, ponieważ kanał nie istnieje i nie może przekazywać danych.
Przykład:
var ch chan int // ch jest nil
func main() {
fmt.Println(<-ch) // blokuje się na zawsze
}
Aby tego uniknąć, kanał należy zainicjalizować za pomocą make, na przykład: ch := make(chan int).