Junior — Middle
Na kojem mestu u kodu je potrebno zatvoriti kanal?
sobes.tech АИ
Одговор од АИ
У Го, канал треба затворити на месту где је креиран и где се више не планира слати податке. Обично то ради пошиљалац да би сигнализирао примаоцима да више података неће бити.
Важно:
- Примачи могу проверити затварање канала приликом читања.
- Само пошиљалац треба да затвори канал како би избегли панике.
Пример:
ch := make(chan int)
func() {
defer close(ch) // затварамо канал након слања свих података
for i := 0; i < 5; i++ {
ch <- i
}
}()
for val := range ch {
fmt.Println(val) // добијамо податке док се канал не затвори
}