Ответ 1
Оператор var chans [5]chan int
будет выделять массив размером 5, но все каналы будут nil
.
Один из способов - использовать литеральный фрагмент:
var chans = []chan int {
make(chan int),
make(chan int),
make(chan int),
make(chan int),
make(chan int),
}
Если вы не хотите повторять себя, вам придется перебирать его и инициализировать каждый элемент:
var chans [5]chan int
for i := range chans {
chans[i] = make(chan int)
}