Junior — Middle
Какво ще се случи, ако се опитате да прочетете данни от канал, който все още не е инициализиран?
sobes.tech AI
Отговор от AI
Ако се опитате да прочетете данни от канал в Go, който не е инициализиран (т.е. е nil), операцията по четене ще бъде блокирана завинаги. Това ще доведе до това, че горутината, която се опитва да чете от такъв канал, ще застане, тъй като каналът не съществува и не може да предава данни.
Пример:
var ch chan int // ch е nil
func main() {
fmt.Println(<-ch) // блокира завинаги
}
За да избегнете това, каналът трябва да бъде инициализиран с make, например: ch := make(chan int).