Bru*_*uce 3 for-loop go unused-variables
如何避免使用代码之类的"for循环中未使用的变量"错误
ticker := time.NewTicker(time.Millisecond * 500)
go func() {
for t := range ticker.C {
fmt.Println("Tick at", t)
}
}()
Run Code Online (Sandbox Code Playgroud)
如果我实际上不使用t变量?
Dav*_*rth 17
你不需要分配任何东西,只需使用for range,就像这样(在游戏中)
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)
}
Run Code Online (Sandbox Code Playgroud)
I15*_*159 10
使用预定义的_变量.它被命名为" 空标识符 ",并在您不需要变量的实际值时用作只写值.它类似于/dev/null在Unix中编写值.
for _ = range []int{1,2} {
fmt.Println("One more iteration")
}
Run Code Online (Sandbox Code Playgroud)
可以使用任何类型的任何值分配或声明空白标识符,并且无害地丢弃该值.这有点像写入Unix/dev/null文件:它表示一个只写值,用作需要变量但实际值无关的占位符.
来自Golang 文档:
直到Go 1.3,for-range循环有两种形式
for i, v := range x {
...
}
Run Code Online (Sandbox Code Playgroud)
和
for i := range x {
...
}
Run Code Online (Sandbox Code Playgroud)
如果一个人对循环值不感兴趣,只有迭代本身,仍然需要提一个变量(可能是空标识符,如_ =范围x),因为表格
for range x {
...
}
Run Code Online (Sandbox Code Playgroud)
在语法上是不允许的.
这种情况似乎很尴尬,因此从Go 1.4开始,无变量形式现在是合法的.这种模式很少出现,但代码可以更清晰.
| 归档时间: |
|
| 查看次数: |
575 次 |
| 最近记录: |