2014-01-17 2 views
5

채널 배열을 사용하도록 지정했습니다.골란. 채널 배열

나는 이해할 수 없다. 왜 이것이 효과가 없습니까?

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

채널 자체는 초기화하지 않았지만 채널 배열을 초기화했습니다.

이유는 교착 상태입니다. 이는 초기화되지 않았거나 nil로 설정된 채널 값이 항상 차단된다는 사실 때문입니다. (article보기)

+0

감사합니다. 어떤 이유로 나는 모든 요소를 ​​초기화하지 않을 것이라고 생각했다. –