chan は golang において非常に重要なもので、ゴルーチンの通信に使用されます。、golang プログラムには必然的に複数のゴルーチンが存在するため、これらのゴルーチンをどのように同期させるかが非常に重要です。 。
chan を使用する場合、いくつかの経験があります: (推奨される学習: Go )
まず第一に、常に記号 & lt 読み取りまたは書き込み (v,ok :=
第二に、読むときにOKがない場合は読むこともできます。ただし、閉じている場合は読み取ることができ、割り当てはありません。閉じているかどうかを知りたい場合は、 ok を追加する必要があります。つまり、 chan が決して閉じられていない限り、読み取りには v,ok を使用する必要があります。 v の代わりに = <-c := <-c の方法。
繰り返しますが、クローズされた chan に書き込むことはできないため、通常はシグナル chan (通常、バッファーは 1) を使用して、書き込むか放棄するかを決定する必要があります。書き込みが成功したかどうかを判断するには、select を使用します。 . または、閉じようとしているため、書き込みをあきらめる必要があります。
最後に、chan がクローズされた後もデータがある場合、ok は true のままで、chan にデータがなくなるまで false になります。
チャネルが閉じている場合、取得はブロックされませんが、ゼロ値を返します
package main import "fmt" func main() { c := make(chan int, 5) c <- 123 close(c) fmt.Println(<-c) fmt.Println(<-c) }
出力
123 0
以上がゴランちゃんは閉店してるの?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。