如何修复已声明但未使用的'这个简单程序中的编译器错误?

时间:2014-11-23 16:24:45

标签: go declaration

我正在努力学习Go。我真的不明白为什么编译器说我没有使用变量。在我看来,我使用变量作为Println的参数。

我的教科书指出:

  

在此for循环中i表示数组中的当前位置   valuex[i]

相同
package main

import "fmt"

func main() {

    x := [5]float64{ 1,2,3,4,5 }
    i := 0
    var total float64 = 0

    for i, value := range x {
        total += value
        fmt.Println(i, value)
    }   
    fmt.Println("Average:", total / float64(len(x)))
}

OS X上的输出:

go run main.go 
# command-line-arguments
./main.go:8: i declared and not used

这个fmt.Println(i, value)肯定使用变量i

1 个答案:

答案 0 :(得分:2)

  

如何修复编译器消息?

从程序中删除外部i

package main

import "fmt"

func main() {

    x := [5]float64{1, 2, 3, 4, 5}
    var total float64 = 0

    for i, value := range x {
        total += value
        fmt.Println(i, value)
    }
    fmt.Println("Average:", total/float64(len(x)))
}
  

当然这个fmt.Println(i,value)正在使用变量i?

是的,但是你在for循环中定义的那个。 (注意:=),这里:

for i, value := range x
    ^        ^

永远不会使用外部变量i