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

huangapple go评论81阅读模式
英文:

Why can't I use the blank identifier in the following Go code?

问题

第二次使用_会出现错误::=左边没有新的变量。我做错了什么?

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

The second use of _ gives this error: no new variables on left side of :=. What have I done wrong?

答案1

得分: 7

使用这行代码:

for _ = range flag.Args() {

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

英文:

Use this line:

for _ = range flag.Args() {

The error should disappear if you omit initialization for the blank identifier.

答案2

得分: 7

:= 是一个短变量声明。_ 不是一个真正的变量,所以你不能声明它。

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

英文:

:= is a short variable declaration. _ is not a real variable, so you can't declare it.

You should use = instead, when you don't have any new variables.

答案3

得分: 4

截至Go 1.4(当前版本),您可以直接使用for range flag.Args() { ... }来跳过_ = 部分。

英文:

An update for this question, as of Go 1.4 (current tip), you can use for range flag.Args() { ... } directly skipping the _ = part.

huangapple
  • 本文由 发表于 2010年11月26日 21:34:45
  • 转载请务必保留本文链接:https://go.coder-hub.com/4285728.html
匿名

发表评论

匿名网友

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

确定