Sobes.tech
Junior — Middle

Wat gebeurt er in een programma als je probeert te lezen uit een gesloten kanaal in Go?

sobes.tech AI

Antwoord van AI

Als je probeert te lezen uit een gesloten kanaal in Go, zal de leesoperatie een nulwaarde van het kanaaltype en false in de tweede geretourneerde waarde teruggeven, als je de syntax met twee return-waarden gebruikt:

v, ok := <-ch

Hier zal ok false zijn, wat betekent dat het kanaal gesloten is en geen verdere gegevens zullen binnenkomen.

Als je uit een gesloten kanaal leest zonder ok te controleren, krijg je een nulwaarde van het kanaaltype (bijvoorbeeld 0 voor int).

Belangrijk: lezen uit een gesloten kanaal blokkeert niet en veroorzaakt geen panic, maar geeft onmiddellijk een nulwaarde en false terug.