我正在努力学习Go。我真的不明白为什么编译器说我没有使用变量。在我看来,我使用变量作为Println
的参数。
我的教科书指出:
在此for循环中
相同i
表示数组中的当前位置value
与x[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
?
答案 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
。