分享
go语言中数组
暮雨 · · 2845 次点击 · · 开始浏览这是一个创建于 的文章,其中的信息可能已经有所发展或是发生改变。
数组是go语言内置的一种数据类型,对于该类型,将通过几下几点进行展开
数组声明和初始化
数组有以下几种声明初始化的方式
// 方法1
var arr [5]int
// 方法2
var arr = [5]int{1,2,3,4,5}
// 方法3
arr := [5]int{1,2,3,4,5}
// 方法4
arr := [...]int{1,2,3,4,5}
// 特定赋值
arr := [5]int{1:2,4:3}
数组使用
- 数组赋值
var arr = [5]int{}
arr[1]=3
- 数组取值
var arr = [5]int{5,4,3,2,1}
num := arr[1]
- 数组遍历
// for 遍历
var arr = [5]int{1,2,3,4,5}
for i :=0; i < len(arr); i++ {
fmt.Println(arr[i])
}
// for range 遍历
for _, item := range arr {
fmt.Println(item)
}
- 数组类型
具有相同的长度和类型的数组是同一类型,它们之间可以进行直接赋值操作,在长度不相同的数组变量间赋值,需要通过单个值的方式进行
数组指针
- 数组指针
数组指针是一个存储指针的集合
// 声明一个空指针的空数组
var pr = [5]*int
这样每一个数组元素都是一个空指针对于空指针,不能将值直接符给一个空指针
数组传参
在之前的一篇文章中,对go语言的传参做了一个专题,进行展开的,在此不做详细的展开
将数组进行传参数时,传递的是数组的一个copy,因此在函数中对数组值的修改,不会导致最终实参中数组值的变化,如果,数组长度特别大的,这样的值传递,会很消耗内存,因此,使用数组的指针进行传递,它只是一个数组指针的copy,切指向同一数组地址
有疑问加站长微信联系(非本文作者)
入群交流(和以上内容无关):加入Go大咖交流群,或添加微信:liuxiaoyan-s 备注:入群;或加QQ群:692541889
关注微信2845 次点击
添加一条新回复
(您需要 后才能回复 没有账号 ?)
- 请尽量让自己的回复能够对别人有帮助
- 支持 Markdown 格式, **粗体**、~~删除线~~、
`单行代码` - 支持 @ 本站用户;支持表情(输入 : 提示),见 Emoji cheat sheet
- 图片支持拖拽、截图粘贴等方式上传
收入到我管理的专栏 新建专栏
数组是go语言内置的一种数据类型,对于该类型,将通过几下几点进行展开
数组声明和初始化
数组有以下几种声明初始化的方式
// 方法1
var arr [5]int
// 方法2
var arr = [5]int{1,2,3,4,5}
// 方法3
arr := [5]int{1,2,3,4,5}
// 方法4
arr := [...]int{1,2,3,4,5}
// 特定赋值
arr := [5]int{1:2,4:3}
数组使用
- 数组赋值
var arr = [5]int{}
arr[1]=3
- 数组取值
var arr = [5]int{5,4,3,2,1}
num := arr[1]
- 数组遍历
// for 遍历
var arr = [5]int{1,2,3,4,5}
for i :=0; i < len(arr); i++ {
fmt.Println(arr[i])
}
// for range 遍历
for _, item := range arr {
fmt.Println(item)
}
- 数组类型
具有相同的长度和类型的数组是同一类型,它们之间可以进行直接赋值操作,在长度不相同的数组变量间赋值,需要通过单个值的方式进行
数组指针
- 数组指针
数组指针是一个存储指针的集合
// 声明一个空指针的空数组
var pr = [5]*int
这样每一个数组元素都是一个空指针对于空指针,不能将值直接符给一个空指针
数组传参
在之前的一篇文章中,对go语言的传参做了一个专题,进行展开的,在此不做详细的展开
将数组进行传参数时,传递的是数组的一个copy,因此在函数中对数组值的修改,不会导致最终实参中数组值的变化,如果,数组长度特别大的,这样的值传递,会很消耗内存,因此,使用数组的指针进行传递,它只是一个数组指针的copy,切指向同一数组地址