Ich versuche Funktion wie diese zu schreiben, aber ich kann nicht Scheibe Kanäle erklärenwie kann ich ein Stück chan (Kanäle) in func erklären
func fanIn(set <-[]chan string) <-chan string {
c := make(chan string)
for i := range set {
go func() { for {c <-set[i]} }()
}
return c
}
ist es möglich, in Go a zu haben Slice von Kanälen als Argument?
Beispiel Aufruf
set := [2]chan string{mylib.Boring("Joe"), mylib.Boring("Ann")}
c := fanIn(set)
, wenn ich diese
func fanIn(input1, input2 <-chan string) <-chan string {
Ich gehe davon aus tun kann, dass es möglich sein sollte, von "< -chan string"
Scheibe oder Array haben aktualisiert:
Sie sollten selten Kanäle von Ihrer öffentlichen API zurückgeben, stattdessen nehmen Sie einen Kanal als Argument, das Sie senden. Sie können diesen einen Kanal in allen Ihren Boring-Anrufen verwenden und brauchen nicht einmal das fanIn. – Wessie
Sie könnten auch https://godoc.org/github.com/eapache/channels#Multiplex verwenden, das ein 'select' verwendet, um zu vermeiden, dass für jeden Eingabekanal eine ganze Goroutine erzeugt wird. – Evan