Junior — Middle
Jak można zakończyć pracę z kanałem w programie?
sobes.tech AI
Odpowiedź od AI
W Go, aby zakończyć pracę z kanałem, używa się funkcji close(). Zamknięcie kanału sygnalizuje odbiorcom, że nie będą już wysyłane nowe wartości. Po zamknięciu kanału próba wysłania do niego spowoduje panikę, ale odczyt z zamkniętego kanału jest możliwy — zwróci wartość zerową i false jako drugi parametr.
Przykład:
ch := make(chan int)
ngo func() {
ch <- 42
close(ch) // Zamykamy kanał po wysłaniu
}()
for val := range ch {
fmt.Println(val) // Wypisze 42
}
Tak więc, aby zakończyć pracę z kanałem, należy wywołać close(channel).