Go数据-数组(二)
2019-08-01 本文已影响0人
草莓君_
定义数组类型时,数组长度必须时非负正整数常量表达式,长度是类型组成部分。也就是说,元素类型相同,但长度不同的数组不属于同一类型。
初始化方式
func main() {
var a [4]int //元素自动初始化为零
b := [4]int{2, 5} //未提供初始值的元素自动初始化位 0
c := [4]int{5, 3: 10} //可指定索引位置初始化
d := [...]int{1, 2, 3} //编译器按初始化值数量确定数组长度
e := [...]int{10, 3: 100} //支持索引初始化,但注意数组长度与此有关
fmt.Println(a, b, c, d, e)
}
输出:
[0 0 0 0]
[2 5 0 0]
[5 0 0 10]
[1 2 3]
[10 0 0 100]
2.定义多为数组时,仅第一维度允许使用“...”。
func main() {
a := [2][2]int{{1,2},{3,4}}
b := [...][2]int{{10,29},{30,40}}
c := [...][2][2]int{{{1,2},{3,4}},{{10,20},{30,40}}}
fmt.Println(a)
fmt.Println(b)
fmt.Println(c)
}
输出:
[[1 2] [3 4]]
[[10 29] [30 40]]
[[[1 2] [3 4]] [[10 20] [30 40]]]