Как выделить массив каналов

Как создать массив каналов?

Например: замените следующие пять строк массивом каналов с размером 5:

var c0 chan int = make(chan int);
var c1 chan int = make(chan int);
var c2 chan int = make(chan int);
var c3 chan int = make(chan int);
var c4 chan int = make(chan int);
22
задан Rene Knop 12 November 2018 в 22:40
поделиться

1 ответ

Оператор var chans [5]chan int выделит массив размером 5, но все каналы будут nil.

Одним из способов было бы использование литерала slice:

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)
}
53
ответ дан 29 November 2019 в 04:12
поделиться
Другие вопросы по тегам:

Похожие вопросы: