当前第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)
|
结果为:
显而易见:遍历完后,数组中的每个元素都变成了当前元素和前一个元素的和;切片中也是这样,只不过每个元素都变成了前一个元素改变后的值和当前元素的和。
分析: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数组与切片的区别是什么?的详细内容,更多文章请关注木庄网络博客!!
返回前面的内容
相关阅读 >>
手撸golang 基本数据结构与算法 网页排名/pagerank,随机游走
07 golang值类型——数组
一道有趣的golang排错题
golang基于heap库实现简易优先队列
golang语言学习之什么是golang
golang快速入门(二)初尝命令行参数
golang如何接收前端的参数
使用viper读取nacos配置(开源)
stream:我们为何要从python转到go语言?
手撸golang go与微服务 聚合模式之1
更多相关阅读请进入《golang》频道 >>
老貘
一个与时俱进的Go编程知识库。
转载请注明出处:木庄网络博客 » golang数组与切片的区别是什么?