1. 数组
像大多数编程语言一样,Go也有数组。然而,在Go中很少直接使用数组。
数组中的所有元素都必须是指定的类型(这并不意味着它们总是相同的类型)。有几种不同的声明风格。在第一个语句中,指定数组的大小和数组元素的类型:
var x [3]int
这将创建一个包含三个整型数的数组。由于没有指定任何值,因此所有位置(x[0],x[1]和x[2])都被初始化为int类型的零值,当然是0。如果有数组的初始值,你可以用array literal来指定它们:
var x = [3]int{10, 20, 30}
如果你有一个稀疏数组(一个大多数元素都被设置为零值的数组),你可以只指定数组文字中有值的下标:
var x = [12]int{1, 5: 4, 6, 10: 100, 15}
当使用array literal初始化数组时,可以省略数字并使用…来代替:
var x = [...]int{10, 20, 30}
可以使用==和!=来比较数组:
var x = [...]int{1, 2, 3}
var y = [3]int{1, 2, 3}
fmt.Println(x == y) // prints true
Go只有一维数组,但是可以模拟多维数组:
var x [2][3]int
这里声明x是一个长度为2的数组,其类型是一个长度为3的整型数组。这听起来很迂腐,但是有些语言具有真正的矩阵支持;go不是其中之一。
像大多数语言一样,Go中的数组是使用括号语法读写的:
x[0] = 10
fmt.Println(x[2])
内置函数len接受一个数组并返回其长度:
fmt.Println(len(x))
前面我说过,在Go中很少显式地使用数组。这是因为它们有一个不寻常的限制:Go认为数组的大小是数组类型的一部分。这使得声明为[3]int的数组与声明为[4]int的数组类型不同。这也意味着不能使用变量来指定数组的大小,因为类型必须在编译时解析,而不是在运行时解析。
标签:02,10,Composite,int,数组,类型,var,Go,Types From: https://www.cnblogs.com/yyyylllll/p/18415255