Golang理解-数组和切片
发布时间:2020-12-16 09:22:47 所属栏目:大数据 来源:网络整理
导读:数组 数组在Go中定义及特点 数组是一个由固定长度的特定类型元素组成的序列,一个数组可以由零个或多个元素组成。 因为 数组的长度是固定的 ,因此在Go语言中很少直接使用数组。 和数组对应的类型是Slice(切片),它是可以增长和收缩动态序列,slice功能也
数组数组在Go中定义及特点数组是一个由固定长度的特定类型元素组成的序列,一个数组可以由零个或多个元素组成。 因为 和数组对应的类型是Slice(切片),它是可以增长和收缩动态序列,slice功能也更灵活,但是要理解slice工作原理的话需要先理解数组。 默认情况下,数组的每个元素都被初始化为元素类型对应的零值,对于数字类型来说就是0。我们也可以使用数组字面值语法用一组值来初始化数组: var q [3]int = [3]int{1,2,3} var r [3]int = [3]int{1,2} fmt.Println(r[2]) // "0" 在数组字面值中,如果在数组的长度位置出现的是“...”省略号,则表示数组的长度是根据初始化值的个数来计算。因此,上面q数组的定义可以简化为 q := [...]int{1,3} fmt.Printf("%Tn",q) // "[3]int"
我们将会发现,数组、slice、map和结构体字面值的写法都很相似。上面的形式是直接提供顺序初始化值序列,但是也可以指定一个索引和对应值列表的方式初始化,就像下面这样: type Currency int const ( USD Currency = iota // 美元 EUR // 欧元 GBP // 英镑 RMB // 人民币 ) symbol := [...]string{USD: "$",EUR: " |