<8>Golang基础进阶——数组和切片

Golang开发之数组/切片

数组——固定大小的连续空间

概念

数组是一段固定长度的连续内存区域。在 Go 语言中,数组从声明时就确定,(使用时可以修改数组成员,但是数组大小不可变化)。

1. 声明数组

var 数组变量名 [元素数量]T
示例:

如果未补充的value会使用该类型默认值填充。

func main() {
var team [3]string

team[0] = "hammer"
team[1] = "sold"
team[2] = "mum"

fmt.Println(team) // [hammer sold mum]
}
声明并初始化数组:
func main() {
var team = [3]string{"hammer", "sold", "mum"}
fmt.Println(team)
}
数组大小交给编译器定义:
func main() {
var team = [...]string{"hammer", "sold", "mum"}
fmt.Println(team)
}

2. 遍历数组

func main() {
arr1 := [5]int{3: 100, 4: 300}
for i := 0; i < len(arr1); i++ {
fmt.Printf("a[%d]=%d\n", i, arr1[i])
}

for i, _ := range arr1 {
fmt.Println(i)
}
}

二维数组

func main() {
var a [3][2]int
a[0][0] = 10
a[0][1] = 10
fmt.Println(a)

for i1, v1 := range a {
fmt.Println(i1)
for i2, v2 := range v1 {
fmt.Println(i2, v2)
}
}
}

数组拷贝和传参

func printArr(arr *[5]int) {
arr[0] = 10
}

func main() {
var arr [5]int
printArr(&arr)
fmt.Println(arr)

arr2 := [...]int{1, 2, 3, 4, 5}
printArr(&arr2)
fmt.Println(arr2)
}

猜你喜欢

转载自www.cnblogs.com/Wshile/p/12768285.html