package main
import "fmt"
func main() {
c := make(chan int, 5)
c <- 5
c <- 6
close(c)
fmt.Println(<-c)
}
上面的程式不應該列印 6,因為它是發送到通道的最后一個值嗎?
更重要的是,是否可以從封閉的渠道列印/接收?
它列印 5
uj5u.com熱心網友回復:
Golang 通道是先進先出的。這就是為什么首先列印出 5 的原因。
編輯:關閉通道表示不再向其發送資料。
“如果通道關閉,你仍然可以讀取資料。但是你不能向它發送新資料。這個程式在關閉通道之前和之后都讀取,它有效。它只是為了發送而關閉”
https://golangr.com/close-channel/
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/424124.html
標籤:去
上一篇:減少Go中數字和代碼的處理時間
