2014-01-17 36 views
5

我有一個使用通道數組的分配。Golang。通道陣列

我不明白。爲什麼這不起作用?

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) 
} 

回答

6

您已初始化通道數組,但未初始化通道本身。

至於它爲什麼會陷入僵局;這是由於這樣一個事實,即一個尚未初始化或已被設置爲零的通道值將始終阻塞。 (見article

+0

謝謝。出於某種原因,我認爲也是所有元素的初始化 –