登录
首页 >  Golang >  Go教程

为什么使用 `for range` 和 `for i` 遍历切片时输出结果不同?

时间:2024-12-08 13:48:44 148浏览 收藏

IT行业相对于一般传统行业,发展更新速度更快,一旦停止了学习,很快就会被行业所淘汰。所以我们需要踏踏实实的不断学习,精进自己的技术,尤其是初学者。今天golang学习网给大家整理了《为什么使用 `for range` 和 `for i` 遍历切片时输出结果不同?》,聊聊,我们一起来看看吧!

为什么使用 `for range` 和 `for i` 遍历切片时输出结果不同?

for range 和 for i 输出结果不同

考虑以下代码:

func examplefunc(arr []int) {
    arr[0] = 100
    arr[1] = 101
}

func main() {
    arr := make([]int, 2, 5)
    for i := 0; i < len(arr); i++ {
        arr[i] = i
    }

    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
    }
}

为什么使用 for range 和 for i 输出的结果不同?

这是因为 for range 遍历的是切片的元素值,而 for i 遍历的是切片的索引。

要使用 for range 遍历元素值,可以使用以下方法:

for _, v := range arr {
    fmt.printf("%d\n", v)
}

这样,就可以得到相同的输出:

0
1
100
101

今天关于《为什么使用 `for range` 和 `for i` 遍历切片时输出结果不同?》的内容就介绍到这里了,是不是学起来一目了然!想要了解更多关于的内容请关注golang学习网公众号!

相关阅读
更多>
最新阅读
更多>
课程推荐
更多>