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

For loop 如何避免;for循环中未使用的变量;错误,for-loop,go,unused-variables,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变量?请使用预定义的变量。当您不需要变量的实际值时,它被命名为“”,并用作只写值。这类似于在Unix中将值写入/dev/null for _ = r

如何使用类似以下代码避免“for循环中未使用的变量”错误

ticker := time.NewTicker(time.Millisecond * 500)
go func() {
    for t := range ticker.C {
        fmt.Println("Tick at", t)
    }
}()

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

请使用预定义的
变量。当您不需要变量的实际值时,它被命名为“”,并用作只写值。这类似于在Unix中将值写入
/dev/null

for _ = range []int{1,2} {
    fmt.Println("One more iteration")
}
可以使用任何类型的任何值分配或声明空白标识符,该值将被无害地丢弃。这有点像写入Unix/dev/null文件:它表示一个只写的值,在需要变量但实际值不相关的情况下用作占位符

更新 来自Golang:

直到Go 1.3,范围循环有两种形式

如果对循环值不感兴趣,仅迭代本身,仍然需要提及变量(可能是空白标识符,如在“=范围X”中),因为窗体

语法上是不允许的

这种情况看起来很尴尬,因此从Go 1.4开始,变量自由形式现在是合法的。模式很少出现,但出现时代码会更干净。


您不需要分配任何内容,只需对范围使用
,如下所示


不再需要这个了<代码>for range
现在是非常有效的语法。如果
range
返回两个变量,而您只需要其中一个,请执行
for,y in range
for i, v := range x {
    ...
}
for i := range x {
    ...
}
for range x {
   ...
}
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)

}