分享
goLang slice 和 array区别
soledad · · 1560 次点击 · · 开始浏览这是一个创建于 的文章,其中的信息可能已经有所发展或是发生改变。
array 类型
array是固定长度的数组,使用前必须确定数组长度
golang array 特点:
-
golang中的数组是值类型,也就是说,如果你将一个数组赋值给另外一个数组,那么,实际上就是整个数组拷贝了一份 - 如果
golang中的数组作为函数的参数,那么实际传递的参数是一份数组的拷贝,而不是数组的指针 -
array的长度也是Type的一部分,这样就说明[10]int和[20]int是不一样的。
slice类型
-
slice是一个引用类型,是一个动态的指向数组切片的指针。 -
slice是一个不定长的,总是指向底层的数组array的数据结构。
1.创建slice
动态数组创建,类似创建数组,但是没有指定固定长度
var al []int //创建slice
sl := make([]int,10) //创建有10个元素的slice
sl:=[]int{1,2,3} //创建有初始化元素的slice
2.先创建数组,在数组的基础上建立切片slice
var arr =[10]{1,2,3,4,5。6}
sl := arr[2:5] //创建有3个元素的slice
3.slice有一些简便的操作
- `slice`的默认开始位置是0,`ar[:n]`等价于`ar[0:n]`
- `slice`的第二个序列默认是数组的长度,`ar[n:]`等价于`ar[n:len(ar)]`
数组和slice的区别
- 声明数组时,方括号内写明了数组的长度或者...,声明slice时候,方括号内为空
- 作为函数参数时,数组传递的是数组的副本,而slice传递的是指针。
有疑问加站长微信联系(非本文作者)
入群交流(和以上内容无关):加入Go大咖交流群,或添加微信:liuxiaoyan-s 备注:入群;或加QQ群:692541889
关注微信1560 次点击
上一篇:sirupsen/logrus
下一篇:go map类型
添加一条新回复
(您需要 后才能回复 没有账号 ?)
- 请尽量让自己的回复能够对别人有帮助
- 支持 Markdown 格式, **粗体**、~~删除线~~、
`单行代码` - 支持 @ 本站用户;支持表情(输入 : 提示),见 Emoji cheat sheet
- 图片支持拖拽、截图粘贴等方式上传
收入到我管理的专栏 新建专栏
array 类型
array是固定长度的数组,使用前必须确定数组长度
golang array 特点:
-
golang中的数组是值类型,也就是说,如果你将一个数组赋值给另外一个数组,那么,实际上就是整个数组拷贝了一份 - 如果
golang中的数组作为函数的参数,那么实际传递的参数是一份数组的拷贝,而不是数组的指针 -
array的长度也是Type的一部分,这样就说明[10]int和[20]int是不一样的。
slice类型
-
slice是一个引用类型,是一个动态的指向数组切片的指针。 -
slice是一个不定长的,总是指向底层的数组array的数据结构。
1.创建slice
动态数组创建,类似创建数组,但是没有指定固定长度
var al []int //创建slice
sl := make([]int,10) //创建有10个元素的slice
sl:=[]int{1,2,3} //创建有初始化元素的slice
2.先创建数组,在数组的基础上建立切片slice
var arr =[10]{1,2,3,4,5。6}
sl := arr[2:5] //创建有3个元素的slice
3.slice有一些简便的操作
- `slice`的默认开始位置是0,`ar[:n]`等价于`ar[0:n]`
- `slice`的第二个序列默认是数组的长度,`ar[n:]`等价于`ar[n:len(ar)]`
数组和slice的区别
- 声明数组时,方括号内写明了数组的长度或者...,声明slice时候,方括号内为空
- 作为函数参数时,数组传递的是数组的副本,而slice传递的是指针。