问题
对未初始化的的 chan
进行读写,会怎么样?为什么?
怎么答
读写未初始化的 chan
都会阻塞。
举例
1. 写未初始化的 chan
package main
// 写未初始化的chan
func main() {
var c chan int
c <- 1
}
// 输出结果
fatal error: all goroutines are asleep - deadlock!
goroutine 1 [chan send (nil chan)]:
main.main()
/Users/admin18/go/src/code.byted.org/linzhaolun/repos/main.go:6 +0x36
注意这个 chan send (nil chan)
,待会会提到。
2. 写读未初始化的 chan
package main
import "fmt"
// 读未初始化的chan
func main() {
var c chan int