我目前正在學習 Go。我正在閱讀 Go編程簡介這本書我在并發部分并形成我所理解的我可以看到兩種定義無限循環的方法 go 程序。func pinger(c chan string) { for i := 0; ; i++ { c <- "ping" }}func printer(c chan string) { for { msg := <- c fmt.Println(msg) time.Sleep(time.Second * 1) }}我想知道 pinger 函數中的 i 變量有什么用。聲明無限循環的最佳“去”方式是什么?我會說打印機功能中的那個更好,但由于我是新手,我可能會錯過 pinger 功能中的聲明。感謝所有愿意提供幫助的人。
2 回答

元芳怎么了
TA貢獻1798條經驗 獲得超7個贊
第i一個循環是多余的;擺脫未使用的變量總是最好的,因此您也應該for{}在 pinger() 函數中使用 a 。
這是一個工作示例:
package main
import(
"time"
"fmt"
)
func main() {
c := make(chan string)
go printer(c)
go pinger(c)
time.Sleep(time.Second * 60)
}
func pinger(c chan string) {
for{
c <- "ping"
}
}
func printer(c chan string) {
for {
msg := <- c
fmt.Println(msg)
time.Sleep(time.Second * 1)
}
}

動漫人物
TA貢獻1815條經驗 獲得超10個贊
“最好”的方法是編寫易于閱讀和維護的代碼。您的變量iinfunc pinger沒有用處,以后偶然發現該代碼的人將很難理解它的用途。
我只會做
func pinger(c chan string) {
for {
c <- "ping"
}
}
- 2 回答
- 0 關注
- 183 瀏覽
添加回答
舉報
0/150
提交
取消