Junior — Middle
Wat is het verschil tussen het verkrijgen van een null-waarde uit een gesloten kanaal en het verkrijgen van dezelfde waarde door zelf een kanaal te maken en er gegevens naartoe te sturen?
sobes.tech AI
Antwoord van AI
In Go, bij het lezen uit een kanaal, als het kanaal gesloten is en er geen gegevens meer zijn, geeft de leesoperatie de nulwaarde van het kanaaltype en false in de tweede geretourneerde waarde (als je de syntax v, ok := <-ch gebruikt). Dit geeft aan dat het kanaal gesloten is en geen gegevens meer zal bevatten.
Als je echter een kanaal aanmaakt, er een nulwaarde naartoe stuurt en het leest, zal de leesoperatie deze nulwaarde teruggeven, maar ok zal true zijn, omdat het kanaal open is en gegevens zijn ontvangen.
Samenvatting:
- Gesloten kanaal zonder gegevens: lezen geeft de nulwaarde +
ok == false. - Open kanaal met nulwaarde: lezen geeft de nulwaarde +
ok == true.
Dit maakt het mogelijk om het echte nulwaarde te onderscheiden van het signaal dat het kanaal gesloten is.