亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

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 關注
  • 183 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號