GO语言学习之数组

数组的介绍

数组是一个由“固定长度的", "特定类型元素"组成的序列,一个数组可以由一个或多个元素组成;因为数组的元素是固定的,所以在GO语言当中很少直接使用数组.

简单的数组

一、数组声明

数组声明语法:

var 数组变量名 [元素数量]Type
  • 数组变量名:数组声明及使用时的变量名
  • 元素数量:数组中元素的数量,可以提前定义,如果定义了就不能超出这个数量,也可以用[...]:表示数组的长度根据初始化的值自动计算
  • Type:可以是任意基本类型,比如int、string、也可以是数组本身,类型为数组本身时,可以实现多维数组.

数组的每个元素都可以通过索引下标来访问,索引下标的范围是从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

 

posted @ 2020-09-27 19:15  差点点温柔  阅读(153)  评论(0编辑  收藏  举报