Junior — Middle
Op welk punt in de code moet het kanaal worden gesloten?
sobes.tech AI
Antwoord van AI
In Go moet een kanaal gesloten worden op de plek waar het wordt aangemaakt en waar niet meer van plan is om gegevens te sturen. Gewoonlijk doet de zender dit om de ontvangers te signaleren dat er geen gegevens meer zullen komen.
Belangrijk:
- Ontvangers kunnen controleren of het kanaal gesloten is tijdens het lezen.
- Alleen de zender moet het kanaal sluiten om paniek te voorkomen.
Voorbeeld:
ch := make(chan int)
func() {
defer close(ch) // sluit het kanaal nadat alle gegevens zijn verzonden
for i := 0; i < 5; i++ {
ch <- i
}
}()
for val := range ch {
fmt.Println(val) // ontvangt gegevens totdat het kanaal sluit
}