Array 陣列
Golang 基礎: 陣列變數
陣列
指定陣列大小
var arr [5]int
arr[0] = 1
arr[1] = 2
arr[4] = 5
fmt.Println(arr) // [1 2 0 0 5]
arr := [5]int{1, 2, 3}
fmt.Println(arr) // [1 2 3 0 0]
不指定陣列大小
arr := [...]int{1, 2, 3, 4, 5}
fmt.Println(arr) // [1 2 3 4 5]
巢狀陣列
var arr [3][2]int
fmt.Println(arr) // [[0 0] [0 0] [0 0]]
指定巢狀陣列預設值
arr1 := [3][2]int{{1, 2}, {3, 4}, {5, 6}}
fmt.Println(arr1) // [[1 2] [3 4] [5 6]]
arr2 := [...][2]int{{1, 2}, {3, 4}, {5, 6}}
fmt.Println(arr2) // [[1 2] [3 4] [5 6]]
複製陣列
限制陣列長度
arr := [5]int{1, 2, 3, 4, 5}
// 指定要複製的陣列
var arr_copy [5]int
arr_copy = arr
arr_copy[3] = 99
fmt.Println(arr) // [1 2 3 4 5]
fmt.Println(arr_copy) // [1 2 3 99 5]
不限制陣列長度
複製的陣列會變成傳址的方式
arr := []int{1, 2, 3, 4, 5, 6, 7}
var arr_copy []int
arr_copy = arr
arr_copy[3] = 99
fmt.Println(arr) // [1 2 3 99 5 6 7]
fmt.Println(arr_copy) // [1 2 3 99 5 6 7]