golang では、close() 関数を使用してチャネルを閉じることができます。構文は「close(msg_chan)」です。チャネル (chan) はシステム リソースであるため、chan を使用する必要がない場合は、組み込み関数 close を使用して手動でパイプを閉じる必要があります。注: 閉じたパイプにデータを送信すると、プログラムがパニックになります。
このチュートリアルの動作環境: Windows 7 システム、GO バージョン 1.18、Dell G3 コンピューター。
Go 言語のチャネル (chan) もシステムリソースなので、chan を使用する必要がない場合は手動でパイプを閉じる必要があります。パイプを閉じるには、システムの組み込みの閉じる関数を使用する必要があります。
close() は組み込み関数であり、これ以上値がチャネルに送信されないことを示すフラグを設定します。
close(msg_chan)
説明 | |
---|---|
パイプを閉じる必要があります。 |
//Go程序说明如何 //关闭使用的通道 //range循环和关闭函数 package main import "fmt" func myfun(mychnl chan string) { for v := 0; v < 4; v++ { mychnl <- "nhooo" } close(mychnl) } func main() { //创建通道 c := make(chan string) // 使用 Goroutine go myfun(c) //当ok的值为为true时,表示通道已打开,可以发送或接收数据 //当ok的值设置为false时,表示通道已关闭 for { res, ok := <-c if ok == false { fmt.Println("通道关闭 ", ok) break } fmt.Println("通道打开 ", res, ok) } }
データを閉じたパイプに送信すると、プログラムはpannic
package main import "fmt" func main() { fmt.Println("嗨客网(www.haicoder.net)") ch := make(chan string, 5) ch <- "Hello" ch <- "HaiCoder" ch <- "Python" close(ch) ch <- "Close" }
パイプを閉じた後、閉じたパイプを再度使用して「Close」メッセージを送信しました。プログラムを実行した後、プログラムがパニックを起こしました。である場合、閉じられたパイプはデータを再度送信できません。そうでない場合、プログラムはパニックを起こします。
【関連する推奨事項:
Go ビデオ チュートリアル、
プログラミング教育以上がgolangでチャンネルを閉じる方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。