go语言的数组

go语言的数组

简介

数组是同一种数据类型元素的集合,固定大小的连续空间,和Python这种动态语言的列表有点区别。

数组长度在声明时已经确定,或者编译器确定了,后期可以修改数组成员,但是不能修改大小。

定义

格式:

1
var 数组变量名 [元素数量]类型

声明一个变量名为team,长度为4,元素类型为string的数组:

1
var team [4]string

注意:

数组的长度必须是常量。长度是数组类型的一部分,比如var team1 [2]stringteam类型是不一样的。

初始化

空数组

1
var kong = []string{}

方法1

使用初始化列表来设置数组元素的值:

1
2
3
4
5
6
7
8
9
10
11
12
13
package main

import (
"fmt"
)

func main() {
// 声明并初始化
var team = [4]string{"Linux", "Python","Java","Go"}

// [Linux Python Java Go]
fmt.Println(team)
}

方法2

让编译器确定数组的长度:

1
2
3
4
5
6
7
8
9
10
11
12
13
package main

import (
"fmt"
)

func main() {
// 让编译器确定数组的长度
var team = [...]string{"Linux", "Python","Java","Go"}

// [Linux Python Java Go]
fmt.Println(team)
}

方法3

还可以使用指定索引值的方式来初始化数组:

1
2
3
4
5
6
7
8
9
10
11
12
13
package main

import (
"fmt"
)

func main() {
// 指定索引值的方式来初始化数
var team = [...]string{1: "Linux", 2: "Python",4: "Java",3: "Go"}

// [Linux Python Java Go]
fmt.Println(team)
}

数组遍历

for range

1
2
3
4
5
6
7
8
9
10
11
12
13
14
package main

import (
"fmt"
)

func main() {
var team = [...]string{0: "Linux", 1: "Python",3: "Java",2: "Go"}

// 数组遍历:for range
for index, value := range team {
fmt.Printf("索引:%d\t索引值:%v\n", index, value)
}
}

for

1
2
3
4
5
6
7
8
9
10
11
package main

import "fmt"

func main() {
var team = [...]string{0: "Linux", 1: "Python", 3: "Java", 2: "Go"}

for i := 0; i < len(team); i++ {
fmt.Printf("索引:%d\t索引值:%v\n", i, team[i])
}
}

两种结果一样:

1
2
3
4
索引:0	索引值:Linux
索引:1 索引值:Python
索引:2 索引值:Go
索引:3 索引值:Java
/