Heim > Artikel > Backend-Entwicklung > So schließen Sie den Kanal in Golang
In Golang können Sie die Funktion close() verwenden, um den Kanal zu schließen. Die Syntax lautet „close(msg_chan)“. Der Kanal (Chan) ist eine Systemressource. Wenn Sie Chan also nicht verwenden müssen, müssen Sie die integrierte Funktion close verwenden, um die Pipe manuell zu schließen. Hinweis: Wenn Sie Daten an eine geschlossene Pipe senden, gerät das Programm in Panik.
Die Betriebsumgebung dieses Tutorials: Windows 7-System, GO Version 1.18, Dell G3-Computer.
Channel (chan) in der Go-Sprache ist auch eine Systemressource. Wenn wir chan nicht verwenden müssen, müssen wir die Pipe daher manuell schließen. Um eine Pipe zu schließen, müssen Sie die integrierte Schließfunktion des Systems verwenden.
close() ist eine integrierte Funktion und setzt ein Flag, das angibt, dass keine weiteren Werte an den Kanal gesendet werden.
close(msg_chan)
Parameter | Beschreibung |
---|---|
msg_chan | Die Pipe, die geschlossen werden muss. |
Sie können den Kanal auch mit einer for-Range-Schleife schließen. Hier kann die Empfänger-Goroutine mithilfe der angegebenen Syntax prüfen, ob der Kanal offen oder geschlossen ist:
ele, ok:= <- Mychannel
Wenn hier der Wert von ok wahr ist, bedeutet dies, dass der Kanal offen ist und daher der Lesevorgang ausgeführt werden kann . Wenn der Wert falsch ist, bedeutet dies, dass der Kanal geschlossen ist und daher kein Lesevorgang ausgeführt wird.
Erklärung
Nachdem wir Variablen verwendet haben, um die von der Pipeline zurückgegebenen Daten zu akzeptieren, gibt der zweite Rückgabewert vom Typ Bool an, ob die Pipeline geschlossen ist. Wenn er falsch ist, zeigt er an, dass die Pipeline geschlossen wurde.
Beispiel für das Schließen eines Kanals
//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) } }
Senden Sie Daten an eine geschlossene Pipe. Das Programm gerät in Panik „Schließen“-Meldung: Nach dem Ausführen des Programms sehen wir, dass das Programm in Panik gerät, das heißt, die geschlossene Pipe kann keine Daten erneut senden, andernfalls gerät das Programm in Panik.
【Verwandte Empfehlungen:Go-Video-Tutorial,
Programmierunterricht】
Das obige ist der detaillierte Inhalt vonSo schließen Sie den Kanal in Golang. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!