Sobes.tech
Back to questions
Junior — Middle
85

Что произойдет, если попытаться прочитать данные из канала, который еще не был инициализирован?

Answer from AI

sobes.tech AI

Если попытаться прочитать данные из канала в Go, который не был инициализирован (то есть равен nil), то операция чтения заблокируется навсегда. Это приведет к тому, что горутина, пытающаяся читать из такого канала, зависнет, так как канал не существует и не может передавать данные.

Пример:

var ch chan int // ch равен nil

func main() {
    fmt.Println(<-ch) // блокируется навсегда
}

Чтобы избежать этого, канал нужно инициализировать с помощью make, например: ch := make(chan int).