定义一维数组
func main() {
//定义一个全为0的数组 不可定义初始值
var arr1 [5]int
//不可省略定义初始值
arr2 := [3]int{1,3,5}
//省略定义多少个
arr3 = [...]int{2,4,6,8,10}
fmt.Println(arr1, arr2, arr3)
}
输出:
[0 0 0 0 0] [1 3 5] [2 4 6 8 10]
定义二维数组
func main() {
//定义一个四行五列的二维数组 不可定义初始值
var grid[4][5]int
//定义一个两行三列的二维数组 不可省略定义初始值
arr2 := [2][3]int{{1,3,5},{2,4,6}}
//省略定义多少行
arr3 := [...][3]int{{6,3,5},{9,4,6},{8,5,7}}
fmt.Println(grid, arr2, arr3)
}
输出:
[
[0 0 0 0 0]
[0 0 0 0 0]
[0 0 0 0 0]
[0 0 0 0 0]
]
[
[1,3,5]
[2,4,6]
]
[
[6,3,5]
[9,4,6]
[8,5,7]
]
循环遍历数组
-----------------------------------------------1-----------------------------------------------
func main() {
arr3 := [...]int{2,4,6,8,10}
for i := 0; i < len(arr3); i++{
fmt.Println(arr3[i])
}
}
输出:
2
4
6
8
10
-----------------------------------------------2-----------------------------------------------
func main() {
arr3 := [...]int{2,4,6,8,10}
for i := range arr3{
fmt.Println(arr3[i])
}
}
输出:
2
4
6
8
10
-----------------------------------------------3-----------------------------------------------
func main() {
arr3 := [...]int{2,4,6,8,10}
// i为数组下标 v为数组的值 只要一个i或v可以用_替换(_省略变量)
for i, v := range arr3{
fmt.Println(i, v)
}
}
输出:
0 2
1 4
2 6
3 8
4 10
数组是值类型
-----------------------------------------------1-----------------------------------------------
func printlnArray(arr [5]int) {
for i, v := range arr {
fmt.Println(i, v)
}
}
func main() {
var arr1 [5]int
// arr2不可使用printlnArray
// printlnArray需要5个int而arr2只有3个int
arr2 := [3]int{1,3,5}
arr3 = [...]int{2,4,6,8,10}
printArray(arr1)
printArray(arr3)
}
输出:
0 0
1 0
2 0
3 0
4 0
0 2
1 4
2 6
3 8
4 10
-----------------------------------------------2-----------------------------------------------
func printlnArray(arr [5]int) {
for i, v := range arr {
fmt.Println(i, v)
}
//因为是值类型 所以该修改无效
arr[0] = 100
}
func main() {
var arr1 [5]int
// arr2不可使用printlnArray
// printlnArray需要5个int而arr2只有3个int
arr2 := [3]int{1,3,5}
arr3 = [...]int{2,4,6,8,10}
printArray(arr1)
fmt.println(arr1,arr3)
}
输出:
0 0
1 0
2 0
3 0
4 0
//因为是值类型 所以修改无效
[0 0 0 0 0] [2 4 6 8 10]
}
-----------------------------------------------3-----------------------------------------------
// arr[0] = 100放到前面
func printlnArray(arr [5]int) {
//因为是值类型 所以该修改只修改内部
arr[0] = 100
for i, v := range arr {
fmt.Println(i, v)
}
}
func main() {
var arr1 [5]int
// arr2不可使用printlnArray
// printlnArray需要5个int而arr2只有3个int
arr2 := [3]int{1,3,5}
arr3 = [...]int{2,4,6,8,10}
printArray(arr1)
fmt.println(arr1,arr3)
}
输出:
//此处被修改了
0 100
1 0
2 0
3 0
4 0
//因为是值类型 所以此处修改无效
[0 0 0 0 0] [2 4 6 8 10]