数组是一个由“固定长度的", "特定类型元素"组成的序列,一个数组可以由一个或多个元素组成;因为数组的元素是固定的,所以在GO语言当中很少直接使用数组.
一、数组声明
数组声明语法:
var 数组变量名 [元素数量]Type
数组的每个元素都可以通过索引下标来访问,索引下标的范围是从0开始,内置函数len()可以返回数组元素中的个数
==========================代码================================
func main() { var a [3]string = [3]string{"zhangsan","lisi","wangwu"} var b [3]int = [3]int{1,2,3} //求数组中最后一个元素是什么. fmt.Println(a[len(a)-1])
//打印数组b fmt.Println(b)
//遍历数组a,打印出下标和对应的元素的值 for i,v := range a { fmt.Println(i,v) }
//遍历数组a,只打印出每个元素的值 for _,v := range a { fmt.Printf("%d \n", v) } } =================================结果===================================== wangwu //a数组中最后一个元素的值 [1 2 3] //b数组 //打印数组a,下标和对应的元素的值值 0 zhangsan 1 lisi 2 string=wangwu ---------------------------------------- //只打印数组a元素的值 zhangsan lisi wangwu
默认情况下,数组的每个元素都被初始化为元素类型对应的0值,对于int类型就是0,string类型就是空
var q [3]int = [3]int{1, 2, 3} var r [3]int = [3]int{1, 2} fmt.Println(q) fmt.Println(r[2]) 结果: [1 2 3] 0
如果不想指定数组元素的数量,可以用[...]代替,表示数组的长度根据初始化值的个数来计算
q := [...]int{1, 2,3,4,5} fmt.Printf("%T\n", q) 结果: [5]int //有5个元素的int数组
二、比较两个数组是否相等
如果两个数组类型相同(包括数组的长度,数组中元素的类型)的情况下,我们可以直接通过运算符(==和!=)来判断两个数组是否相等
只有当两个数组的所有元素都是相等的时候 数组才是相等的
不能比较两个类型不同的数组,否则程序将无法完成编译
a := [2]int{1, 2} b := [...]int{1, 2} c := [2]int{1, 3} fmt.Println(a == b, a == c, b == c) //结果: "true false false" d := [3]int{1, 2} fmt.Println(a == d) // 编译错误:无法比较 [2]int == [3]int
三、遍历数组-->访问每一个数组元素
var team [3]string team[0] = "zhangsan" team[1] = "lisi" team[2] = "wangwu" for k,v := range team { fmt.Println(k,v) } 结果: 0 zhangsan 1 lisi 2 wangwu
原文:https://www.cnblogs.com/chadiandianwenrou/p/13741340.html