Sobes.tech
Junior — Middle

Wat gebeurt er als je probeert een kanaal te sluiten dat al gesloten is?

sobes.tech AI

Antwoord van AI

In Go zal attempt to sluiten van een al gesloten kanaal tijdens de uitvoering van het programma leiden tot een panic. Dit komt doordat de functie close() bedoeld is om een kanaal slechts één keer te sluiten, en herhaald sluiten wordt als een fout beschouwd.

Voorbeeld:

ch := make(chan int)
close(ch)      // correcte sluiting
close(ch)      // veroorzaakt panic: close of closed channel

Om een panic te voorkomen, moet je garanderen dat het kanaal slechts één keer wordt gesloten, bijvoorbeeld met extra logica of synchronisatie.