06、数组
Array(数组)
数组是同一种数据类型元素的集合。 在Go语言中,数组从声明时就确定,使用时可以修改数组成员,但是数组大小不可变化。 基本语法:
1 | //定义一个长度为3的,类型为int的数组a |
数组定义
1 | var 数组变量名 [数组长度]T |
数组的长度必须是常量,并且长度是数组类型的一部分。一旦定义,长度不能变化。
1 | var b [3]bool |
数组初始化
方法一
1
2
3
4//方式一数组初始化
var numArray [3]int
numArray = [3]int{1,2}
fmt.Println(numArray)方式二
1
2
3//方式二,根据初始值自动推算数组长度
arr := [...]int{1,2,3,4,5,6,7,8,9,0}
fmt.Println(arr)方式三
1
2
3//方式三,根据索引初始化值
a3 := [4]bool{1:true,3:true}
fmt.Println(a3)多维数组定义及初始化
注意:** 多维数组只有第一层可以使用
...
来让编译器推导数组长度。例如:1
2
3
4
5
6
7//多维数组定义
citys := [...][2]string{
{"北京", "上海"},
{"广州", "深圳"},
{"成都", "重庆"},
}
fmt.Println(citys)
数组遍历
普通for循环遍历
1
2
3
4
5
6
7//普通for循环数组遍历
for i :=0; i < len(citys); i++ {
city := citys[i]
for j := 0; j < len(city); j++ {
fmt.Println(city[j])
}
}for -range遍历
1
2
3
4
5
6//for range遍历
for _, city := range citys{
for _, c := range city{
fmt.Println(c)
}
}
数组是值类型
数组是值类型,赋值和传参会复制整个数组。因此改变副本的值,不会改变本身的值。
1 | c := [...]string{"吃饭", "睡觉", "打豆豆"} |
注意
1、数组支持”==”,”!=”操作符,因为内存总是被初始化过的。
2、[n]*T
表示指针数组,*[n]T
表示数组指针
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 DurianLollipop的个人博客!
评论