原则
1.数组的长度必须是常量,并且长度是数组类型的一部分。一旦定义,长度不能变 eg. [5]int
和[10]int
是不同的类型。
2. 多维数组只有第一层可以使用 ...
3.数组是值类型 当赋值或者传递参数 是拷贝一份副本 ,对副本进行操作的时候 不会影响原有数组
4.注意
- 数组支持 “==“、”!=” 操作符,因为内存总是被初始化过的。
[n]*T
表示指针数组,*[n]T
表示数组指针 。
//数组 func arr() { //定义一个有类型的数组 var a [13] int //var 变量名 [长度] 数组里的类型 fmt.Println(a) //[0 0 0 0 0 0 0 0 0 0 0 0 0] //定义数组的其他方式 var numArray = [3]int {1, 2} //前两个索引进行赋值 fmt.Println(numArray) //[1 2 0] //如何给某个索引进行初始化 var indexArray= [6] int{3:7,4:8} fmt.Println(indexArray) //数组的遍历两种方式 for i:=0 ;i<len(indexArray);i++{ fmt.Println(indexArray[i]) } for ind,val :=range indexArray{ fmt.Println(ind,val) } //多维数组 a3:=[3][2] string{ {"北京","上海"}, {"杭州","盛政"}, {"百度","京东"}, }// a[外层长度][里层长度] fmt.Println(a3) var x4[6] int x4=indexArray //将indexArray的值赋值给X4 x4[0]=1 //修改第一个索引 fmt.Println(x4)//[1 0 0 7 8 0] 副本发生变化 fmt.Println(indexArray) //[0 0 0 7 8 0] 原有不变 }