下面的代碼是將值放入通道并接收和列印的代碼與您輸入的一樣多。我希望它可以作業,但發生了錯誤。
package main
import (
"fmt"
"time"
)
func main() {
var ch chan int
for i := 0; i < 3; i {
go func(idx int) {
ch <- (idx 1) * 2
}(i)
}
fmt.Println("result:", <-ch)
fmt.Println("result:", <-ch)
fmt.Println("result:", <-ch)
//do other work
time.Sleep(2 * time.Second)
}
在操場上測驗 - https://go.dev/play/p/FFmoSMheNfu
uj5u.com熱心網友回復:
您正在使用零通道。型別宣告還不夠,需要使用make來初始化通道。
ch := make(chan int)
https://go.dev/play/p/L1ewulPDYlS
有一集 justforfunc解釋了 nil 通道的行為方式以及它們有時有用的原因。
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/424133.html
標籤:去
