本文摘自php中文网,作者青灯夜游,侵删。

golang中数组和切片的区别:
● 切片是指针类型,数组是值类型
● 数组的长度是固定的,而切片不是(切片是动态的数组)
● 切片比数组多一个属性:容量(cap)
● 切片的底层是数组
相关推荐:golang教程
既然一个是指针类型,一个是值类型,那么区别体现在哪里呢?
看下这个例子
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)
|
结果为:
将切片换为数组:
阅读剩余部分
相关阅读 >>
go1.4 bootstrap 源码安装新版go
这家独角兽旅行服务公司,在用 go 进行微服务治理
golang如何封装路由
手撸golang 行为型设计模式 中介者模式
go - json.unmarshal 遇到的小坑
golang令牌桶实现 [go-rate] 速率限制器
golang如何导入包
go 内存模型 并发可见性
go - 实现项目内链路追踪(二)
型模式
更多相关阅读请进入《golang》频道 >>
老貘
一个与时俱进的Go编程知识库。
转载请注明出处:木庄网络博客 » golang数组与切片的区别是什么?