Rumah >pembangunan bahagian belakang >Golang >Cara menutup saluran di golang

Cara menutup saluran di golang

青灯夜游
青灯夜游asal
2023-01-11 11:12:232713semak imbas

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.

Cara menutup saluran di golang

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)
    }
}

Cara menutup saluran di golang

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"
}

Cara menutup saluran di golang

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!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel sebelumnya:Apa itu nil dalam bahasa goArtikel seterusnya:Apa itu nil dalam bahasa go