Map は、キーと値のペアの順序付けされていないコレクションです。 Map の最も重要な点は、キーを通じてデータを迅速に取得することです。キーはインデックスに似ており、データの値を指します。
Map はコレクションであるため、配列やスライスと同じように反復処理できます。ただし、Map はハッシュ テーブルを使用して実装されているため、Map には順序がなく、返される順序を決定できません。
golang でチャネルが閉じられているかどうかを判断する方法を見てみましょう:
チャネルを読み取るときに、チャネルが閉じられているかどうかを判断します
#,ok := <-jobs
現時点でチャンネルがクローズされている場合、ok の値は false になります。
チャンネルがクローズされているかどうかを判断します。チャネルへの書き込み時に閉じられています
1._,ok := <- jobs
この時点でチャネルが閉じられている場合、OK値は false です。チャネルが閉じられていない場合は、1 つが失われます。job
2. select メソッド
を使用して、タイムアウトと呼ばれる別のチャネルを作成します。タイムアウトになり、このチャネルに true を送信すると、プロデューサーはジョブのチャネルにデータを送信します。select を使用してタイムアウトを監視し、タイムアウトになった場合はジョブ チャネルを閉じます。
go func() { time.Sleep(time.Second * 3) timeout <- true }()
go func() { for i := 0; ; i++ { select { case <-timeout: close(jobs) return default: jobs <- i fmt.Println("produce:", i) } } }()
Golang の詳細については、こちらをご覧ください。 、PHP 中国語 Web サイトの golang チュートリアル 列に注目してください。
以上がgolangでチャネルが閉じられているかどうかを確認する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。