数组 – Array

数据类型 Liemer_Lius 374℃

定义:

具有相同数据类型的数据项组成的一级长度固定的序列。数据项是数组的元素,数组的长度必须是非负整数的常量,长度也是类型的一部分。

var arr [10]int
fmt.Printf("Type: %T\n", arr) // Type: [10]int

字面量:

方法1:
var a = [10]int{10, 20, 30}
fmt.Println(a) // [10 20 30 0 0 0 0 0 0 0], 没有定义的取0值; [10]int{}的话就是全0

方法2:索引
var a = [10]int{1: 20, 5: 30}
fmt.Println(a)  // [0 20 0 0 0 30 0 0 0 0]

方法3:自动推导[...]
var a = [...]int{1: 20, 5: 30}
fmt.Printf("Type: %T, Value: %v\n", a, a) // Type: [6]int, Value: [0 20 0 0 0 30]

数组比较:长度、每个元素全部相同才相同

num1 := [3]int{1, 3, 4}
num2 := [3]int{1, 2, 4}
num3 := [3]int{1, 2, 4}
fmt.Println(num1 == num2, num3 == num2) // false true

长度获取:len

fmt.Println(len(num1)) // 3

访问、修改元素:索引

num1 := [3]int{1, 3, 4}
fmt.Println(num1[2], num1[:1], num1[1:2]) // 4 [1] [3]
num1[0] = 1000
fmt.Println(num1) // [1000 3 4]

for range:

for k, v := range num1 {
    fmt.Println("Key:", k, "Value:", v)
}

Key: 0 Value: 1
Key: 1 Value: 3
Key: 2 Value: 4

多维数组:每个数据的元素也是一个数组

arr1 := [3][2]int{[2]int{1, 2}}
fmt.Printf("%v\n", arr1)  // [[1 2] [0 0] [0 0]]
arr1[1][1] = 1000
fmt.Println(arr1) // [[1 2] [0 1000] [0 0]]

转载请注明:liutianfeng.com » 数组 – Array

喜欢 (1)

评论已关闭。