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数据不变