我正在学习 Go 语言。有人可以在这里解释输出吗?
package main
import "fmt"
var c = make(chan int, 1)
func f() {
c <- 1
fmt.Println("In f()")
}
func main() {
go f()
c <- 2
fmt.Println(<-c)
fmt.Println(<-c)
}
输出:
In f()
2
1
Process finished with exit code 0
为什么“In f()”出现在“2”之前?如果在“2”之前打印“In f()”,则缓冲通道应该阻塞。但这并没有发生,为什么?
幕布斯7119047
慕哥9229398
相关分类