如何避免 "unused variable in a for loop" 错误

How to avoid "unused variable in a for loop" error

如何使用类似

的代码避免"unused variable in a for loop"错误
ticker := time.NewTicker(time.Millisecond * 500)
go func() {
    for t := range ticker.C {
        fmt.Println("Tick at", t)
    }
}()

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

使用预定义的 _ 变量。它被命名为“blank identifier”并在您不需要变量的实际值时用作只写值。它类似于在 Unix 中向 /dev/null 写入一个值。

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

The blank identifier can be assigned or declared with any value of any type, with the value discarded harmlessly. It's a bit like writing to the Unix /dev/null file: it represents a write-only value to be used as a place-holder where a variable is needed but the actual value is irrelevant.

更新

来自 Golang docs:

Up until Go 1.3, for-range loop had two forms

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

and

for i := range x {
    ...
}

If one was not interested in the loop values, only the iteration itself, it was still necessary to mention a variable (probably the blank identifier, as in for _ = range x), because the form

for range x {
   ...
}

was not syntactically permitted.

This situation seemed awkward, so as of Go 1.4 the variable-free form is now legal. The pattern arises rarely but the code can be cleaner when it does.

您不需要分配任何东西,只需使用 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)

}