到目前为止,我正在学习Go并且玩得很开心。
以下代码将总和输出为 45
package main
import "fmt"
func main(){
//declare a slice
numSlice := []int{1, 2, 3, 4, 5, 6, 7, 8, 9, 10}
var sum int = 0
for num := range numSlice {
sum += num
fmt.Println("num =", num)
}
fmt.Println("sum =", sum)
}
以下代码,其中我使用_空白标识符忽略 for 声明中的索引,输出总和为55
//declare a slice
numSlice := []int{1, 2, 3, 4, 5, 6, 7, 8, 9, 10}
var sum int = 0
for _,num := range numSlice {
sum += num
fmt.Println("num =", num)
}
fmt.Println("sum =", sum)
这让我有点难住了。根据我的理解,空白标识符用于忽略切片索引。但它似乎也在移动索引,从而忽略切片中的最后一个元素。
你能解释一下这里发生了什么,可能是为什么。我假设这不是错误并且是设计使然。Go 设计得非常好,那么这种行为的可能用例是什么?
喵喔喔
相关分类