Go的数组基本写法
package main
import "fmt"
func main() {
var numbers [5]int = [5]int{1, 2, 3, 4, 5}
fmt.Printf("%d\n", numbers[2])
//部分赋值
numbers1 := [5]int{1, 2}
fmt.Printf("%d\n", numbers1[1])
//指定元素初始化
numbers2 := [5]int{2: 5, 3: 6}
fmt.Printf("%d\n", numbers2[2])
//通过初始化确定数组长度
numbers3 := [...]int{7, 8, 5}
fmt.Printf("numbers3 len = %d", len(numbers3))
//不用初始化赋值
var numbers4 [5]int
numbers4[0] = 1
numbers1[1] = 2
fmt.Printf("%d\n", numbers4[1])
}
输出结果:
3
2
5
numbers3 len = 30
二维数组
package main
import "fmt"
func main() {
var arr [2][3]int = [2][3]int{{1, 2, 3}, {5, 6, 7}}
fmt.Println(arr)
//部分初始化
var arr2 [2][3]int = [2][3]int{{1, 2, 3}, {6}}
fmt.Println(arr2)
//指定元素初始化
var arr3 [2][3]int = [2][3]int{1: {5, 6}}
fmt.Println(arr3)
var arr4 [2][3]int = [2][3]int{0: {1: 6}}
fmt.Println(arr4)
//通过初始化确定二维数组的行数
arr5 := [...][3]int{{1, 2, 3}, {5, 6}} //行的下标可以用“...”来代替,但是列的下标不能用“...”来代替
fmt.Println(arr5)
fmt.Printf("二维数组有%d行\n", len(arr5))
fmt.Printf("二维数组有%d列\n", len(arr5[0]))
//循环遍历二维数组
for i, v := range arr {
fmt.Printf("i == %d, v == %d \n", i, v)
for j, data := range v {
fmt.Printf("j == %d, data == %d \n", j, data)
}
}
}
输出结果:
[[1 2 3] [5 6 7]]
[[1 2 3] [6 0 0]]
[[0 0 0] [5 6 0]]
[[0 6 0] [0 0 0]]
[[1 2 3] [5 6 0]]
二维数组有2行
二维数组有3列
i == 0, v == [1 2 3]
j == 0, data == 1
j == 1, data == 2
j == 2, data == 3
i == 1, v == [5 6 7]
j == 0, data == 5
j == 1, data == 6
j == 2, data == 7