go 数组
注意事项
Go 语言数组声明有两种方式:
- 定长数组
- 不定长度数组
注意:
1.如果没有赋值,会有默认值
- int 数组,默认初始化为: 0
- string 就是空串
2.数据类型必须相同,不能混用,int数组不能包含float 等,已验证
3.boolean 是false
4.数组越界是 panic 异常
5.数组是值类型,默认情况下是值拷贝,也就是说每次拷贝后是一个独立副本,数组间互不影响。
6.可以使用指针来实现引用传递
长度用内置函数 len() 即可。
定长数组
即,开始就确定长度的数组。
语法还是比较灵活的,可以设置定长 和 不定长度的数组,直接通过赋值初始化
1 | package P01var |
结果:
打印数组i=0, 数据=111
打印数组i=1, 数据=222
打印数组i=2, 数据=333
打印数组i=3, 数据=0
打印数组i=4, 数据=0
打印数组i=5, 数据=0
如果输入,证明数组越界:
1 | hens[9] = 999 |
../ArrayTest.go:11:6: invalid array index 9 (out of bounds for 6-element array)
另一种初始化,和java相同的语法
1 | func ArrayTest4() { |
不定数组长度
如果数组长度不确定,可以使用 ...
代替数组的长度,编译器会根据元素个数自行推断数组的长度:
格式
1 | func ArrayTest6() { |
另一种写法
1 | // 如果 [5]int 后,[...]int 后的元素个数要对上,否则报错 |
通过下标初始化
如果设置了数组的长度,我们还可以通过指定下标来初始化元素:
格式:
{index1:value1, index2:value2}
举例
初始化第 1
和 3
两个元素:
1 | func ArrayTest5() { |
遍历数组
1 | package main |
结果
Element[0] = 100
Element[1] = 101
Element[2] = 102
Element[3] = 103
Element[4] = 104
Element[5] = 105
Element[6] = 106
Element[7] = 107
Element[8] = 108
Element[9] = 109
声明数组的同时快速初始化数组
1 | func ArrayTest2() { |
总结
数组的声明和初始化的几种写法,大概罗列了这几种,后面再聊聊切片。
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 人话翻译机!
评论