Sobes.tech
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.