Go 通道阵列

Go 通道阵列,go,channel,Go,Channel,我的任务是使用通道阵列 我不明白。为什么这不起作用 package main import "fmt" func run() { chann[0] <- 1 } var chann = make([]chan int, 2) func main() { go run() obj := <- chann[0] fmt.Println(obj) } 主程序包 输入“fmt” func run(){ chann[0]您已初始化通道数组,但未初始化通

我的任务是使用通道阵列

我不明白。为什么这不起作用

package main

import "fmt"

func run() {
    chann[0] <- 1
}

var chann = make([]chan int, 2)

func main() {
    go run()
    obj := <- chann[0]
    fmt.Println(obj)
}
主程序包
输入“fmt”
func run(){

chann[0]您已初始化通道数组,但未初始化通道本身


至于它死锁的原因,这是因为一个尚未初始化或已设置为nil的通道值将始终被阻塞。(参见此)

谢谢。出于某种原因,我认为make也会初始化所有元素