Sobes.tech
Senior

İnitializasiya olunmamış (nil) kanalına yazarkən nə baş verir?

sobes.tech Süni İntellekt

AI-dan cavab

Go-da, qeyri-işə salınmış (nil) kanala yazmaq, goroutine-i müvəqqəti olaraq bloklayır, çünki nil-kanal məlumat qəbul etməyə və ya göndərməyə hazır deyil.

Misal:

var ch chan int // ch == nil

func main() {
    ch <- 1 // müvəqqəti olaraq bloklanır, çünki kanal nil
}

Bu davranış bəzən select-də kanalları dinamik olaraq aktivləşdirmək/deaktivləşdirmək üçün istifadə olunur, çünki nil-kanal ilə əməliyyatlar heç vaxt yerinə yetirilmir və goroutine-i bloklayır.