注意:数组是一个同类型元素的集合,可以通过下表修改数组中值,但是一旦申明了,数组的长度是固定的,不可改变或者追加。

数组定义

var arr [3]int
var arr1 = [3]string{}
list := [5]int{}
复制代码

数组声明

var arr = [3]int{1,2,3}
list := [3]string{"杭州","苏州","西安"}
//修改数组的值
list[1] = "上海"

//使用长度推断
var arr = [...]int{1,2,3}
list := [...]string{"陕西","浙江"}

//指定索引来初始化数组
var list = [...]int{0:3,3:4}
复制代码

二维数组

var list = [2][2]string{
    {"陕西","西安"},
    {"浙江","杭州"},
}
//多维数组只有第一层可以使用...来让编译器推导数组长度。例如:
var list = [...][2]string{
    {"陕西","西安"},
    {"浙江","杭州"},
}
//支持索引取值
fmt.Println(list[1][0])
复制代码

数组的遍历

var list = [3]int{1,2,3}
for _,v := range list{
    fmt.Println(v)
}
//二维数组的遍历
var arr = [2][2]string{
    {"a","b"},
    {"c","d"},
}
for _,v1 := range arr{
    for _,v2 := range v1{
        fmt.Println(v2)
    }
}
复制代码
如果数数组作为值类型的话 无法直接修改原数组,修改的只是数组的副本,如果需要修改原数组,需传递指针
 func main(){
   list := [2]int{1,2}
   wen(&list)
   fmt.Println(list)
 }
 
 func wen(list *[2]int){
     list[0] = 100
 }
复制代码