Junior — Middle
Da li je dozvoljeno slanje podataka u kanal koji nije otvoren za čitanje i pisanje?
sobes.tech АИ
Одговор од АИ
У Go-у, није могуће слати податке у канал који није отворен за запис. Ако је канал затворен (затвара се помоћу close(channel)), покушај слања у њега изазваће паник (runtime panic).
Међутим, читање из затвореног канала је могуће — при томе, читање ће вратити нулту вредност типа канала и флаг који указује да је канал затворен.
Пример:
ch := make(chan int)
close(ch)
// Читање из затвореног канала је безбедно
value, ok := <-ch // ok == false
// Слање у затворени канал изазваће паник
ch <- 1 // panic: send on closed channel
Стога, податке је могуће слати само у отворене канале.