Junior — Middle
Co się stanie w programie, jeśli spróbujesz odczytać z zamkniętego kanału w Go?
sobes.tech AI
Odpowiedź od AI
Jeśli spróbujesz odczytać z zamkniętego kanału w Go, operacja odczytu zwróci wartość zerową typu kanału i false w drugim zwracanym wyniku, jeśli używasz składni z dwoma wartościami zwrotnymi:
v, ok := <-ch
Tutaj ok będzie false, co oznacza, że kanał jest zamknięty i nie będzie już danych.
Jeśli odczytasz z zamkniętego kanału bez sprawdzania ok, otrzymasz wartość zerową typu kanału (np. 0 dla int).
Ważne: odczyt z zamkniętego kanału nie blokuje się i nie wywołuje paniki, tylko natychmiast zwraca wartość zerową i false.