2016-06-07 9 views
1

Ich konnte keine Möglichkeit finden, ein Stück gepufferte Kanäle in Golang zu erstellen. Ich weiß, wie Scheibe ungepufferte Kanal wie untenErstelle ein Stück gepufferten Kanal in Golang

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

Ein Slice-Typ bestimmt nicht, ob es gepuffert ist oder nicht; das wird bestimmt, wenn du den Kanal "machst". –

Antwort

7

Diese Erklärung gegeben erstellen channels := make([]ch,5) einfach der Behälter Zuweisung (die Scheibe von Kanälen, die eine Länge von 5 aufweist). Darüber hinaus müssen Sie jeden Kanal einzeln initialisieren. In diesem Fall würden Sie sie als gepuffert und nicht als ungepuffert deklarieren. So erweitern Sie Ihr Beispiel tun Sie einfach dies:

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