Go复合数据类型之数组 写在前面👀 写在后面🙌

「这是我参与11月更文挑战的第12天,活动详情查看:2021最后一次更文挑战

写在前面👀

今天主要讲讲数组🌯

数组🥫

数组(Array)是同一种数据类型的固定长度的序列🍖

  1. 长度是数组组成的一部分,且必须是整数,一经定义就无法改变(因此在Go语言中很少直接使用数组)
  2. 数组的每个元素可以通过索引下标来访问,索引下标的范围是从0开始到数组长度减1的位置,可以用len( )函数和cap( )函数返回数组的长度和容量

一、定义与初始化数组🍠

  • 语法👇
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
go复制代码定义数组:
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}, // 最后一行必须加逗号
}
  • 示例👇
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
go复制代码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)
}
  • 结果👇

image.png

二、遍历数组🍗

1.常规方法🥩

  • 示例👇
1
2
3
4
5
6
7
8
9
10
11
go复制代码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))
}
  • 结果👇

image.png

2.用for range遍历数组🥟

  • 示例👇
1
2
3
4
5
6
7
8
9
10
11
go复制代码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))
}
  • 结果👇

image.png

三、数组可以比较🥠

如果两个数组的长度和类型都相同,可以通过比较运算符==!=来判断两个数组是否相等,不能比较两个类型不同的数组,否则程序会报错🥡

  • 示例👇
1
2
3
4
5
6
7
8
9
10
11
12
13
go复制代码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)
}
  • 结果👇

image.png

写在后面🙌

感谢观看✨

如有不足,欢迎指出💖

本文转载自: 掘金

开发者博客 – 和开发相关的 这里全都有

0%