代码之家  ›  专栏  ›  技术社区  ›  Matt Joiner

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

go
  •  1
  • Matt Joiner  · 技术社区  · 14 年前
    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 回复  |  直到 14 年前
        1
  •  6
  •   PGene    14 年前

    使用此行:

    for _ = range flag.Args() {

    如果忽略空白标识符的初始化,则错误会消失。

        2
  •  7
  •   Markus Jarderot    14 年前

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

    你应该用 = 相反,当你没有新的变量时。

        3
  •  4
  •   OneOfOne    10 年前

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