day02-05array

数组

存放元素的容器

数组的长度是数组类型的一部分,长度不一样的数组不可以比较(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]

你可能感兴趣的:(day02-05array)