原则 

1.数组的长度必须是常量,并且长度是数组类型的一部分。一旦定义,长度不能变   eg. [5]int[10]int是不同的类型。

2. 多维数组只有第一层可以使用  ...

3.数组是值类型 当赋值或者传递参数 是拷贝一份副本 ,对副本进行操作的时候 不会影响原有数组

4.注意

  1. 数组支持 “==“、”!=” 操作符,因为内存总是被初始化过的。
  2. [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] 原有不变
}

  

posted on 2020-05-25 10:48  谢Rain  阅读(157)  评论(0编辑  收藏  举报