如何避免for循环中未使用的变量"错误

时间:2017-10-20 09:13:58

标签: for-loop go unused-variables

如何避免" for循环中未使用的变量"像

这样的代码出错
ticker := time.NewTicker(time.Millisecond * 500)
go func() {
    for t := range ticker.C {
        fmt.Println("Tick at", t)
    }
}()

如果我实际上没有使用t变量?

2 个答案:

答案 0 :(得分:17)

您无需指定任何内容,只需使用for range,就像这样(on play)

package main

import (
    "fmt"
    "time"
)

func main() {
    ticker := time.NewTicker(time.Millisecond * 500)
    go func() {
        for range ticker.C {
            fmt.Println("Tick")
        }
    }()
    time.Sleep(time.Second * 2)

}

答案 1 :(得分:10)

使用预定义的_变量。它被命名为" blank identifier"并且当您不需要变量的实际值时,将其用作只写值。它类似于在Unix中将值写入/dev/null

for _ = range []int{1,2} {
    fmt.Println("One more iteration")
}
  

可以使用任何类型的任何值分配或声明空白标识符,并且无害地丢弃该值。这有点像写入Unix / dev / null文件:它表示一个只写值,用作需要变量但实际值无关的占位符。

更新

来自Golang docs

  

直到Go 1.3,for-range循环有两种形式

for i, v := range x {
    ...
}
  

for i := range x {
    ...
}
  

如果一个人对循环值不感兴趣,只有迭代本身,仍然需要提一个变量(可能是空白标识符,如_ =范围x),因为表格

for range x {
   ...
}
  

在语法上不允许。

     

这种情况看起来很尴尬,因此从Go 1.4开始,无变量形式现在是合法的。这种模式很少出现,但代码可以更清晰。