数组

定义:数组是具有固定长度,有零个或多个相同数据类型元素的序列。
劣势:由于数组的长度固定,Go语言中使用场景较少。

注意:
1.数组的长度是数组类型的一部分,例如[3]int和[4]int是两个不同的数组类型。
数组的长度必须是常量表达式,该表达式的值在编译时确定。
2.函数传参会创建副本,所以传递大数组会很低效,且只影响副本,应使用指针传递。
Go语言把数组和其他类型作为值传递。其他语言中,数组是隐式地使用引用传递。

数组定义和初始化

//定义一个类型为5个长度整数数组的变量,未初始化,初始值为元素默认值
var myarray1 [5]int
//定义并初始化
var myarray2 [3]int = [3]int{1, 2, 3}
//定义并初始化,赋值长度不够定义长度,余下数据则为默认值
var myarray3 [3]int = [3]int{1}
//定义并初始化,若以省略号出现在长度位置上,则数组长度由初始化数组元素个数决定
myarray4 := [...]int{1, 2, 3, 4}
//不常见用法,9个0,,-1,-4
myarray5 := [...]int{9:-1,-4}

//数组类型一样,且元素类型是可比较的,则数组可比较
fmt.Println(myarray2 == myarray3)

 

 

数组作为函数参数的情况‘

//函数传参会创建副本
func changeArray(tempArray [3]int) [3]int {
	for i := range tempArray {
		tempArray[i] = 10
	}
	return  tempArray
}

fmt.Println(changeArray(myarray2))
fmt.Println(myarray2)

结果:
	[10 10 10]
	[1 2 3]

 

 
posted @ 2018-06-21 15:58  一片湖海  阅读(101)  评论(0编辑  收藏  举报