数组
存放元素的容器
数组的长度是数组类型的一部分,长度不一样的数组不可以比较(a1 和 a2不可比较)
var a1 [3]bool
var a2 [4]bool
fmt.Printf("a1:%T a2:%T\n",a1,a2)
//a1:[3]bool a2:[4]bool
数组的初始化
如果不初始化,默认元素都是零(布尔值:false,整型和浮点型:0,字符串:"")
fmt.Println(a1,a2)
//[false false false] [false false false false]
//初始化方式1
a1 = [3]bool{true,true,true}
//初始化方式2
a10 := [...]int{0,1,2,3,4,5,6,7,8,9} //自动判断长度...
fmt.Printf("%T\n",a10)
//初始化方式3
a3 := [5]int{0:1,1,3,4:5} //根据索引来初始化
fmt.Println(a3)
//[1 3 0 0 5]
数组的遍历
city := [...]stringg{"北京","上海","深圳"}
//根据索引遍历
for i :=0,i < len(city); i++ {
fmt.Println(city[i])
}
//for range遍历
for i,v := range city {
fmt.Println(i,v)
}
多维数组
var a11 [3][2]int
a11 = [3][2]int {
[2]int{1,2},
[2]int{3,4},
[2]int{5,6}.
}
fmt.Println(a11)
//[[1 2] [3 4] [5 6]]
//多维数组遍历
for _,v1 := range a11 {
fmt.Println(v1)
for _,v2 := range v1 {
fmt.Println(v2)
}
}
数组是值类型
b1 := [3]int{1,2,3} //[1 2 3]
b2 := b1 //[1 2 3]
b2[0] = 100 //[100 2 3]
fmt.Println(b1,b2) //相当于硬链接
//[1 2 3] [100 2 3]
网友评论