錯誤程式碼
package main
func main() {
ch := make(chan int)
ch <- 5
}
丟擲錯誤
fatal error: all goroutines are asleep - deadlock!
改造
package main
import (
"fmt"
"time"
)
func push(ch chan int) {
ch <- 5
time.Sleep(4 * time.Second)
}
func main() {
ch := make(chan int)
go push(ch)
fmt.Printf("data is %d", <-ch)
}
我們通過協程push向通道傳送資料,然後在主協程中獲取資料。
本作品採用《CC 協議》,轉載必須註明作者和本文連結