为什么我不能在以下Go代码中使用空白标识符?

时间:2010-11-26 13:34:46

标签: go

for _, arg := range flag.Args() {
    go func() {
        path.Walk(arg, dupes, walkerrs)
        walkend <- true
    }()
}
for _ := range flag.Args() {
    if !<-walkend {
        os.Exit(1)
    }
}

第二次使用_会出现此错误:no new variables on left side of :=。我做错了什么?

3 个答案:

答案 0 :(得分:7)

:=是一个简短的变量声明。 _不是真正的变量,因此您无法声明它。

当您没有任何新变量时,应该使用=

答案 1 :(得分:6)

使用此行:

for _ = range flag.Args() {

如果省略空白标识符的初始化,则错误应该消失。

答案 2 :(得分:4)

此问题的更新,从Go 1.4(当前提示)开始,您可以使用for range flag.Args() { ... }直接跳过_ =部分。