는 I 매개 변수로하는 함수로 채널을 통과하는 두 시도를하지만, 둘 다 (교착) 실패 :함수에 채널을 매개 변수로 전달하는 방법은 무엇입니까?
시도 1
func done(signal *chan bool) {
*signal <- true
}
func main() {
signal := make(chan bool)
done(&signal)
<-signal
fmt.Println("completed")
}
시도 2 : 음
func done(signal chan bool) {
signal <- true
}
func main() {
signal := make(chan bool)
done(signal)
<-signal
fmt.Println("completed")
}
나는 아이디어가 없다. 함수에 채널을 전달하는 적절한 방법은 무엇입니까?
거의 모든 경우에서 chan, map 또는 slice 또는 함수 값에 포인터를 전달할 이유는 내부적으로 포인터를 포함하는 모든 참조 유형이므로 해당 값을 전달할 이유가 없습니다. 호출 대상에서 참조하는 데이터 대신 참조 유형 헤더를 변경하려는 경우는 예외입니다. 여기서는 그렇지 않습니다. – krait