Junior — Middle
Lze vytvořit kanál bez určení jeho velikosti při inicializaci?
sobes.tech AI
Odpověď od AI
Ano, v jazyce Go lze vytvořit kanál bez určení jeho velikosti — bude to nebufferovaný kanál. Takový kanál blokuje odesílatele, dokud příjemce nepřečte hodnotu, a naopak. Příklad vytvoření nebufferovaného kanálu:
ch := make(chan int) // nebufferovaný kanál
Pokud chcete vytvořit bufferovaný kanál s určitým rozměrem, zadáte druhý parametr:
ch := make(chan int, 10) // kanál s bufferem na 10 prvků
Tím je velikost kanálu ve výchozím nastavení rovna nule a funguje jako synchronizační mechanismus mezi gorutinami.