我正在尝试学习围棋。我真的不明白为什么编译器说我没有使用变量。在我看来,我正在使用该变量作为参数来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
吗?
如何修复编译器消息?
从程序中删除外部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
。