Go复合数据类型之数组
「这是我参与11月更文挑战的第12天,活动详情查看:2021最后一次更文挑战」
写在前面👀
今天主要讲讲数组🌯
数组🥫
数组(Array)是同一种数据类型的固定长度的序列🍖
- 长度是数组组成的一部分,且必须是整数,一经定义就无法改变(因此在Go语言中很少直接使用数组)
- 数组的每个元素可以通过索引下标来访问,索引下标的范围是从0开始到数组长度减1的位置,可以用
len( )
函数和cap( )
函数返回数组的长度和容量
一、定义与初始化数组🍠
- 语法👇
定义数组:
var 数组名 [数组长度] Type //Type表示数据类型,可以是任意基本类型
全局初始化:
var a [3]bool = [3]bool{true, false} // 未初始化元素值为默认值
var b = [5]int{1, 2, 3, 4, 5}
var c = [...]complex64{1+2i, 2+1i, 3-0.5i, 4+2i, 5-0.1i, 6-5i} //[...]表示通过初始化值确定数组长度
var d = [5]string{3: "倔强的牛角", 4: "LZH"} // 使用索引号初始化元素
var e = [6]float64{3.14,3.141,3.1415}
var f = [2]struct {
name string
age uint
}{{"大角牛", 18}, {"小角牛", 8}} //最后一行可以不加逗号
局部初始化:
g := [4]int{1, 2}
h := [...]string{"Nami", "Sanji", "Zero", "Luffy"}
i := [9]bool{2: true, 4:true}
j := [...]struct {
book string
price float64
}{
{"Go程序设计语言",55.30 },
{"Go Web编程", 60.83}, // 最后一行必须加逗号
}
- 示例👇
package main
import "fmt"
var a [3]bool = [3]bool{true, false} // 未初始化元素值为默认值
var b = [5]int{1, 2, 3, 4, 5}
var c = [...]complex64{1 + 2i, 2 + 1i, 3 - 0.5i, 4 + 2i, 5 - 0.1i, 6 - 5i} //[...]表示通过初始化值确定数组长度
var d = [5]string{3: "倔强的牛角", 4: "LZH"} // 使用索引号初始化元素
var e = [6]float64{3.14, 3.141, 3.1415}
var f = [2]struct {
name string
age uint
}{{"大角牛", 18}, {"小角牛", 8}} //最后一行可以不加逗号
func main() {
g := [4]int{1, 2}
h := [...]string{"Nami", "Sanji", "Zero", "Luffy"}
i := [9]bool{2: true, 4: true}
j := [...]struct {
book string
price float64
}{
{"Go程序设计语言", 55.30},
{"Go Web编程", 60.83}, // 最后一行必须加逗号
}
fmt.Println(a, b, c, d, e, f)
fmt.Println(g, h, i, j)
}
- 结果👇
二、遍历数组🍗
1.常规方法🥩
- 示例👇
package main
import "fmt"
func main() {
animal := [...]string{"小狗🦮", "小猫🐈", "小猪🐖", "小兔子🐇", "大角牛🐂"}
for index := 0; index < len(animal); index++ {
fmt.Printf("animal[%d]=%s\n", index, animal[index])
}
fmt.Printf("一共有%d只小动物", len(animal))
}
- 结果👇
2.用for range遍历数组🥟
- 示例👇
package main
import "fmt"
func main() {
animal := [...]string{"小狗🦮", "小猫🐈", "小猪🐖", "小兔子🐇", "大角牛🐂"}
for index, value := range animal {
fmt.Printf("animal[%d]=%s\n", index, value)
}
fmt.Printf("一共有%d只小动物", len(animal))
}
- 结果👇
三、数组可以比较🥠
如果两个数组的长度和类型都相同,可以通过比较运算符
==
和!=
来判断两个数组是否相等,不能比较两个类型不同的数组,否则程序会报错🥡
- 示例👇
package main
import "fmt"
var a = [3]int{1, 2, 3}
func main() {
b := [...]int{1, 2, 3}
c := [3]int{}
fmt.Println(a == b)
fmt.Println(a == c)
fmt.Println(b == c)
}
- 结果👇
写在后面🙌
感谢观看✨ 如有不足,欢迎指出💖
转载自:https://juejin.cn/post/7034905582683291679