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.