Sobes.tech
Junior — Middle

Oxuma və yazma üçün açılmayan kanala məlumat göndərmək icazəlidirmi?

sobes.tech Süni İntellekt

AI-dan cavab

Go dilində, yazmaq üçün açılmamış kanala məlumat göndərmək mümkün deyil. Kanal bağlandıqda (close(channel) ilə), ona məlumat göndərməyə cəhd etmək iş vaxtı panikaya (runtime panic) səbəb olacaq.

Ancaq, bağlanmış kanaldan oxumaq mümkündür: bu zaman, oxumaq kanalın növünün sıfır dəyərini və kanalın bağlandığını göstərən bayrağı qaytarır.

Nümunə:

ch := make(chan int)
close(ch)

// Bağlanmış kanaldan oxumaq təhlükəsizdir
value, ok := <-ch // ok == false

// Bağlanmış kanala göndərmə panikaya səbəb olacaq
ch <- 1 // panic: send on closed channel

Bu səbəbdən, məlumat yalnız açıq kanallara göndərilə bilər.