为了账号安全,请及时绑定邮箱和手机立即绑定

for{} 和 for i=0 的区别;i++ {} 在进行中

for{} 和 for i=0 的区别;i++ {} 在进行中

Go
慕娘9325324 2021-11-29 19:08:52
我目前正在学习 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)

   }

}


查看完整回答
反对 回复 2021-11-29
?
动漫人物

TA贡献1815条经验 获得超10个赞

“最好”的方法是编写易于阅读和维护的代码。您的变量iinfunc pinger没有用处,以后偶然发现该代码的人将很难理解它的用途。


我只会做


func pinger(c chan string) {

  for {

    c <- "ping" 

  }

}


查看完整回答
反对 回复 2021-11-29
  • 2 回答
  • 0 关注
  • 156 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信