私は、発電機として利用される2つの読み取り専用チャネル<-chan Event
を持っています。チャネルから値を検査する
type Event struct{
time int
}
ように私はそれらの値を読むことができます:私はあまりtime
フィールドでEvent
を選択する必要がありますので、私はイベント駆動型シミュレーションのために、これらのチャネルを使用
for {
select {
case <-chan1:
// do something
case <-chan2:
//do something
}
。
各チャネルからどの値が入力されているかを調べて、どれを読み込むかを選択することはできますか?操作<-chan1
はチャネルから値を取り、それを元に戻すことはできません(読み取り専用チャネル)。
なぜローカルバッファを作成し、その中にすべてのイベントを格納し、そのバッファから選択しますか? –
@ParhamAlvaniはローカルバッファなしでそれをやりたいエレガントなソリューションを探してください –
別の提案として、MutexとCondVarを使って構造体のようなチャネルを実装することができます。このタイプのソリューションが必要な場合は、実装をアップロードできます。 –