golang数组和切片的区别是什么

发布时间:2022-05-15 发布网站:脚本宝典
脚本宝典收集整理的这篇文章主要介绍了golang数组和切片的区别是什么脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。

数组

是内置(build-in)类型,是一组同类型数据的集合,它是值类型,通过从0开始下标索引访问元素值。在初始化后长度是固定的,

无法修改其长度。当作为方法的参数传入时将复制一份数组而不是引用同一指针。数组的长度也是其类型的一部分,通过内置函数

len(array)获取其长度。

注意:和C中的数组相比,又是有一些不同的

1、Go中的数组是值类型,换句话说,如果你将一个数组赋值给另外一个数组,那么,实际上就是将整个数组拷贝一份

2、如果Go中的数组作为函数的参数,那么实际传递的参数是一份数组的拷贝,而不是数组的指针。这个和C要区分开。因此,在Go

中如果将数组作为函数的参数传递的话,那效率就肯定没有传递指针高了。

3、array的长度也是TyPE的一部分,这样就说明[10]int和[20]int是不一样的。

推荐学习《golang教程》

切片

数组的长度不可改变,在特定场景中这样的集合就不太适用,Go中提供了一种灵活,功能强悍的内置类型Slices切片(“动态数组"),与

数组相比切片的长度是不固定的,可以追加元素,在追加时可能使切片的容量增大。切片中有两个概念:一是len长度,二是cap容

量,长度是指已经被赋过值的最大下标+1,可通过内置函数len()获得。容量是指切片目前可容纳的最多元素个数,可通过内置函数

cap()获得。切片是引用类型,因此在当传递切片时将引用同一指针,修改值将会影响其他的对象。

以上就是golang数组和切片的区别是什么的详细内容,更多请关注脚本宝典其它相关文章

脚本宝典总结

以上是脚本宝典为你收集整理的golang数组和切片的区别是什么全部内容,希望文章能够帮你解决golang数组和切片的区别是什么所遇到的问题。

如果觉得脚本宝典网站内容还不错,欢迎将脚本宝典推荐好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。
标签:数组数组