go学习之数组

    数组是同一种数据类型元素的集合。 在Go语言中,数组从声明时就确定,使用时可以修改数组成员,但是数组大小不可变化。

数组定义

var 数组变量名 [元素数量]T

例如:var a [5]int

注意:数组的长度必须是常量,并且长度是数组类型的一部分。一旦定义,长度不能变。a [5]int 和 a [10]int 是不同类型,不能做比较。go语言是强类型语言,相同类型的变量才能比较
数组初始化

1、数组定义后,默认元素都是零值(布尔值:fales,整型:,字符串:"")
列如:
var a [3]int
fmt.Print(a)
输出:[0 0 0]

2、数组定义后给初始值
例如:
var a = [...]string{"北京", "上海", "深圳"}
fmt.Print(a)
说明:go可以根据初始值的个数自行推断数组的长度

3、通过索引方式初始化
例如:
a := [...]int{1: 1, 3: 5}
数组循环有如下两种方式

//for 循环
var a = [...]string{"北京", "上海", "深圳"}
for i := 0; i < len(a); i++ {
    fmt.Println(a[i])
}

//for range 遍历 //如果不需要索引可以使用“_”接收
for index, value := range a {
    fmt.Println(index, value)
}

 

多维数据遍历

a := [3][2]string{
    {"北京", "上海"},
    {"广州", "深圳"},
    {"成都", "重庆"},
}
for _, v1 := range a {
    for _, v2 := range v1 {
        fmt.Printf("%s\t", v2)
    }
    fmt.Println()
}
注意
go语言中数组arry是可变+拷贝数据类型

arry1 := [3]string{"A", "B", "C"} 
arry2 := arry1
arry1[0] = "a" // arry2数据不变
arry2[1] = "b"// arry1数据不变

 

posted @ 2021-08-04 16:44  泉love水  阅读(48)  评论(0)    收藏  举报