for range和for i输出的结果不一样

func exampleFunc(arr []int) {
    arr[0] = 100
    arr[1] = 101
}
func main() {
    //创建一个int slice
    arr := make([]int, 2, 5)
    //给切片添加元素
    for i := 0; i < len(arr); i++ {
        arr[i] = i
    }
    //arr作为参数,传递到exampleFunc函数中
    exampleFunc(arr)
    
    for v:= range arr {
        fmt.Printf("%d\n", v) //输出0 1
    }
    
    for i := 0; i <len(arr); i++ {
        fmt.Printf("%d\n",arr[i]) //输出100 101
    }
}
阅读 1.3k
1 个回答
    for _, v:= range arr {
        fmt.Printf("%d\n", v)
    }

这样就可以了。
range 的第一个结果是 index ,第二个才是值。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题