一、定义数组
数组内元素类型[数组长度]
package main
import "fmt"
func main() {
var a1 [5]int
a2 := [3]int{1, 2, 3}
a3 := new([10]int)
a3[2] = 5
fmt.Println(a1, a2, a3)
}
二、自动确定长度
package main
import "fmt"
func main() {
a := [...]int{1, 2, 3}
fmt.Println(a)
}
三、多维数组
package main
import "fmt"
func main() {
var a1 [4][5]int
a2 := [2][3]int{
{0, 1, 2},
{1, 2, 3},
}
fmt.Println(a1, a2)
}
四、数组常用方法
len() 取数组或者切片长度
cap() 取数组或者切片容量
在数组中,他们两个永远相同
package main
import "fmt"
func main() {
a := [3]int{1, 2, 3}
fmt.Println(len(a))
fmt.Println(cap(a))
}
五、遍历数组
可通过_省略变量
不仅 range,任何地方都可通过_省略变量
如果只要 i,可写成 for i := range numbers
package main
import "fmt"
func main() {
arr := [...]int{2, 4, 6, 8, 10}
for i := 0; i < len(arr); i++ {
fmt.Println(arr[i])
}
for i, v := range arr {
fmt.Println(i, v)
}
for _, v := range arr {
fmt.Println(v)
}
}
数组是值类型
[10]int 和 [20]int 是不同类型
调用 func f(arr [10]int) 会拷贝数组
在 go 语言中一般不直接使用数组
package main
import "fmt"
func main() {
var arr1 [5]int
arr2 := [...]int{2, 4, 6, 8, 10}
fmt.Println("printArray(arr1)")
printArray(arr1)
fmt.Println("printArray(arr2)")
printArray(arr2)
fmt.Println("arr1 and arr2")
fmt.Println(arr1, arr2)
}
func printArray(arr [5]int) {
arr[0] = 100
for i, v := range arr {
fmt.Println(i, v)
}
}