我目前正在学习 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 关注
- 156 浏览
添加回答
举报
0/150
提交
取消