package main
import"fmt"funcmain(){
arrayE :=[5]int{3:100}// for循环遍历for i :=0; i <len(arrayE); i++{
fmt.Println(arrayE[i])}// for range 遍历for_, v :=range arrayE {
fmt.Println(v)}}
练习
z :=[...]int{1,3,5,7,8}// 1. 求元素和
sum :=0for_,v :=range z {
sum += v
}// 2. 求和为8的两个元素的索引for k1, v1 :=range z {for k2, v2 :=range z[k1:]{if v1+v2 ==8{
fmt.Println(k1, k1+k2)}}}
多维数组
创建
package main
import"fmt"funcmain(){// 先声明, 后赋值var a [3][2]int
a =[3][2]int{[2]int{1,2},[2]int{3,4},}
fmt.Println(a)// 结果为 [[1 2] [3 4] [0 0]], 最后一个默认用0补齐// 声明同时完成初始化var b =[3][2]int{[2]int{1,2},[2]int{3,4},}
fmt.Println(b)// 结果为 [[1 2] [3 4] [0 0]], 最后一个默认用0补齐// 简短声明
c :=[3][3]int{[3]int{1,2,3},[3]int{2,3,4},}
fmt.Println(c)}
关于…的使用
// 在多维数组中, 只有最外层能使用...
a :=[...][2]int{{1,2},{3,4},{5,6},// 可以写多个, 由编译器确认数量}
取值
// 根据索引取值
arrayA[0][1]
遍历
package main
import"fmt"funcmain(){// for循环遍历每个元素for i :=0; i <len(c); i++{for j :=0; j <len(c[i]); j++{
fmt.Println(c[i][j])}}// for range 遍历每个元素for_, v1 :=range c {for_, v2 :=range v1 {
fmt.Println(v2)}}}
验证: 数组是值类型
package main
import"fmt"funcmain(){// 可以理解为值类型存的是指, 引用类型存的是指针// 创建一个数组
m :=[1]int{1}// 将数组进行复制
n := m
// 改变其中一个的元素, 如果 m 和 n 的结果不同则为值类型
m[0]=100// 修改n的元素, 修改m的元素效果相同
fmt.Println(m, n)// 结果为[1] [100]}