golang数组与切片的区别是什么?


当前第2页 返回上一页

1

2

3

4

5

6

7

8

9

numbers := [...]int{1, 2, 3, 4, 5, 6}

for i, e := range numbers {

    if i == len(numbers)-1 {

        numbers[0] += e

    } else {

        numbers[i+1] += e

    }

}

fmt.Println(numbers)

结果为:

1

[7 3 5 7 9 11]

显而易见:遍历完后,数组中的每个元素都变成了当前元素和前一个元素的和;切片中也是这样,只不过每个元素都变成了前一个元素改变后的值和当前元素的和。

分析:for循环时,numbers中的元素是{1,2,3,4,5,6}。接收for循环的变量为i和e,i都是[0,1,2,3,4,5]。 而e不同,数组为值传递,所以遍历数组时,e为{1,2,3,4,5,6}; 切片传递的是指针,所以每次累加,都是改变后的值来累加。

以上就是golang数组与切片的区别是什么?的详细内容,更多文章请关注木庄网络博客!!

返回前面的内容

相关阅读 >>

go - 常用签名算法的基准测试

golang 创建型设计模式 建造者模式

golang语言(打卡✏️第四天)fmt格式化工具|go主题月

聊聊dubbo-go-proxy的timeoutfilter

golang源代码阅读,sync系列-once

go实战仿百度云盘 实现企业级分布式云存储系统

最新字节跳动面试题与答案: 无序数组的中位数 (快排思想o(n) 时间复杂度)

手撸golang 结构型设计模式 门面模式

【paspberry pi】部署kubernetes

go中sync.mutex源码解读

更多相关阅读请进入《golang》频道 >>




打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,您说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

分享从这里开始,精彩与您同在

评论

管理员已关闭评论功能...