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

Стога, податке је могуће слати само у отворене канале.