// 数组 数量写在类型前面
var arr1 [5]int
arr2 := [3]int{1, 3, 5}
arr3 := [...]int{2, 4, 6, 8, 10}
var grid [4][5]int
fmt.Println(arr1, arr2, arr3)
fmt.Println(grid)
//[0 0 0 0 0] [1 3 5] [2 4 6 8 10]
//[[0 0 0 0 0] [0 0 0 0 0] [0 0 0 0 0] [0 0 0 0 0]]
for i := 0; i < len(arr3); i++ {
fmt.Printf("%d ", arr3[i])
}
// 2 4 6 8 10
for key, value := range arr3 {
fmt.Printf("key:%d value:%d", key, value)
}
// key:0 value:2key:1 value:4key:2 value:6key:3 value:8key:4 value:10
// range可通过_省略变量
// 不仅range任何地方都可以通过_省略变量
// 如果只要i,可以写成 for i:= range arr3
// 数组是值类型
printArray(arr3)
// printArray-->key:0 value:100
// printArray-->key:1 value:4
// printArray-->key:2 value:6
// printArray-->key:3 value:8
// printArray-->key:4 value:10
fmt.Println(arr3)
// [2 4 6 8 10]
// [10]int和[20]int是不同类型
// 调用func f(arr [10]int)会拷贝数组
printArray1(&arr3)
// printArray-->key:0 value:100
// printArray-->key:1 value:4
// printArray-->key:2 value:6
// printArray-->key:3 value:8
// printArray-->key:4 value:10
fmt.Println(arr3)
// [100 4 6 8 10]
调用的函数
func printArray(arr [5]int){
arr[0] = 100
for key, value := range arr {
fmt.Printf("printArray-->key:%d value:%dn", key, value)
}
}
func printArray1(arr *[5]int){
arr[0] = 100
for key, value := range arr {
fmt.Printf("printArray-->key:%d value:%dn", key, value)
}
}
在go语言中一般不直接使用数组
切片的概念 切片的操作 Map Map例题 字符和字符串处理


