我正在尝试使用 go 流,但我有一些“愚蠢”的问题。
我已经用字节限制范围做了一个原始流示例,这是工作代码,这是我的问题。
1 - 为什么这段代码在新行显示 1 和 2?为什么不显示12?是否从字节限制流中删除了第一个字节和平?(但是当我们已经推送了 1 数字时,我们如何才能将 2 数字推送到流中?)我就是不明白
package main
import "fmt"
func main() {
ch := make(chan int, 2)
ch <- 1
ch <- 2
fmt.Println(<-ch)
fmt.Println(<-ch)
}
It shows:
1
2
2 个问题 - 我尝试使用此代码来了解它是如何工作的,并且我已经删除了字节范围并且我遇到了死锁错误。为什么会这样?谢谢!
fatal error: all goroutines are asleep - deadlock!
goroutine 1 [chan send]:
main.main()
/tmp/sandbox557775903/main.go:7 +0x60
死锁错误代码:
package main
import "fmt"
func main() {
ch := make(chan int)
ch <- 1
ch <- 2
fmt.Println(<-ch)
fmt.Println(<-ch)
}
谢谢你的帮助!很抱歉这些原始问题。