Go hat einen Mechanismus, um einen blockierenden Lesevorgang von einem von mehreren Kanälen auszuführen, die select Anweisung. So können Sie sagenWie wählt man eine Eingabe für eine dynamische Liste von Kanälen in Go?
select {
case <- c1:
case <- c2:
}
wird blockiert, bis wir Eingang von einem dieser beiden Kanäle erhalten. Sehr schön.
Aber das erfordert, dass ich im Quellcode angeben, wie viele Kanäle ich abfragen möchte. Was ist, wenn ich eine Scheibe oder ein Array von Kanälen habe und blockieren möchte, bis ich eine Eingabe von ihnen bekomme?
Das ist, was ich dachte auch, ich nur gefragt, ob es ein direkter Weg war. – poolie
Könnten Sie sich fragen, wie Sie dies bei der Scheibe erreichen würden? –
@Matt finden Sie unter [Ephemient's Antwort] (http://stackoverflow.com/questions/4220745/how-to-select-for-input-on-a-dynamic-list-of-channels-in-go/4221081#4221081). – poolie