2016-06-07 14 views
1

Я не мог найти способ создания куска буферизованных каналов в golang. Я знаю, как создать кусочек небуферизованного данный канала, как показано нижеСоздайте кусок буферизованного канала в golang

type ch chan int 
channels := make([]ch,5) 
+4

Тип среза не определяет, буферизовано оно или нет; это определяется, когда вы «делаете» канал. –

ответ

7

Это утверждение channels := make([]ch,5) просто выделяя контейнер (кусочек каналов, который имеет длину 5). В дополнение к этому вы должны инициализировать каждый канал индивидуально, который будет, когда вы объявите их как буферизированные, а не небуферизованные. Таким образом, расширяя ваш пример, просто выполните это:

for i, _ := range channels { 
    channels[i] = make(chan int, BufferSize) 
}