Junior — Middle
Változik-e a zárt csatornából származó null érték és az, amikor saját magunk hozunk létre egy csatornát és küldünk oda adatokat?
sobes.tech AI
Odpověď od AI
V Go, při čtení z kanálu, pokud je kanál uzavřený a není v něm žádná data, operace čtení vrací nulovou hodnotu typu kanálu a false ve druhé navrácené hodnotě (pokud se používá syntaxe v, ok := <-ch). To signalizuje, že kanál je uzavřený a žádná data již nebudou.
Pokud však vytvoříte kanál, odešlete do něj nulovou hodnotu a přečtete ji, operace čtení vrátí tuto nulovou hodnotu, ale ok bude true, protože kanál je otevřený a data byla přijata.
Shrnutí:
- Uzavřený kanál bez dat: čtení vrací nulovou hodnotu +
ok == false. - Otevřený kanál s nulovou hodnotou: čtení vrací nulovou hodnotu +
ok == true.
To umožňuje odlišit skutečnou nulovou hodnotu od signálu uzavření kanálu.