Rumah >pembangunan bahagian belakang >Golang >Cara menutup saluran di golang
Dalam golang, anda boleh menggunakan fungsi close() untuk menutup saluran, sintaksnya ialah "close(msg_chan)". Saluran (chan) ialah sumber sistem, jadi apabila anda tidak perlu menggunakan chan, anda perlu menggunakan fungsi terbina dalam dekat untuk menutup paip secara manual. Nota: Jika anda menghantar data ke paip tertutup, program akan panik.
Persekitaran pengendalian tutorial ini: sistem Windows 7, GO versi 1.18, komputer Dell G3.
Saluran (chan) dalam bahasa Go juga merupakan sumber sistem Oleh itu, apabila kita tidak perlu menggunakan chan, kita perlu menutup paip secara manual. Untuk menutup paip, anda perlu menggunakan fungsi tutup terbina dalam sistem.
close() ialah fungsi terbina dalam dan menetapkan bendera yang menunjukkan bahawa tiada lagi nilai akan dihantar ke saluran.
close(msg_chan)
参数 | 描述 |
---|---|
msg_chan | 需要关闭的管道。 |
Anda juga boleh menggunakan gelung untuk julat untuk menutup saluran. Di sini, goroutine penerima boleh menyemak sama ada saluran dibuka atau ditutup dengan bantuan sintaks yang diberikan:
ele, ok:= <- Mychannel
Di sini, jika nilai ok adalah benar, ia bermakna saluran terbuka dan oleh itu operasi baca boleh dilakukan. Dan jika nilai adalah palsu, ini bermakna saluran ditutup, jadi tiada operasi baca akan dilakukan.
Penjelasan
Selepas kami menggunakan pembolehubah untuk menerima data yang dikembalikan oleh saluran paip, nilai pulangan jenis bool kedua menunjukkan sama ada saluran paip ditutup Jika ia palsu, ia menunjukkan bahawa saluran paip Sudah ditutup.
Contoh menutup saluran
//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) } }
Menghantar data ke paip tertutup , program akan panik
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" }
Selepas menutup paip, kami menggunakan paip tertutup semula untuk menghantar mesej "Tutup" Selepas menjalankan program, kita lihat Program panik, iaitu paip tertutup tidak boleh menghantar data lagi, jika tidak, program akan panik.
[Cadangan berkaitan: Pergi tutorial video, Pengajaran pengaturcaraan]
Atas ialah kandungan terperinci Cara menutup saluran di golang. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!