数组在任何编程语言中,都是非常常用的数据结构之一。
Golang中数组的特点有两个:1)在内存中的一段连续存储空间;2)存储类型相同的一组数据。
声明格式:
var 数组名称 [数组大小]类型
package main
import "fmt"
/**
www.itzhimei.com
*/
func main() {
var arr1 [10]int
//每个元素单独赋值
arr1[0] = 1
arr1[1] = 2
arr1[2] = 3
fmt.Println("arr1:",arr1)
//定义变量同时赋值
arr2 := [10]int{4,5,6}
fmt.Println("arr2:",arr2)
}
输出:
arr1: [1 2 3 0 0 0 0 0 0 0]
arr2: [4 5 6 0 0 0 0 0 0 0]
如上面demo所示,我们可以先定义数组变量再单个赋值,也可以定义的同时赋值。
注意点:数组在定义时,中括号中指定数组大小是不能省略的,如果你要赋值一个比较长数组,可以用三个点来代替数组大小的数字,go会自己计算数据长度,如下:
arr3 := [...]int{7,8,9}
fmt.Println("arr3:",arr3)
//输出结果
arr3: [7 8 9]
数组的特点:
1、数组在定义时,长度就固定了,不能再修改长度;
2、数组比较是否相等的时候,数组的长度也是一个比较条件,数组长度不相等,那么两个数据肯定不相等。
数组的操作:
1、操作单个元素,直接使用数组名+下标即可,还可以用for循环遍历,for我们再后续章节会讲到
var arr1 [10]int
arr1[0] = 1
for _,i :=range arr3 {
fmt.Println("arr3的元素打印:",i)
}
输出结果:
arr3的元素打印: 7
arr3的元素打印: 8
arr3的元素打印: 9
2、数据的另一个操作就是获取数组的长度,go内置了一个len()的方法
fmt.Println("arr1数组长度为:",len(arr1))
fmt.Println("arr2数组长度为:",len(arr2))
fmt.Println("arr3数组长度为:",len(arr3))
输出结果:
arr1数组长度为: 10
arr2数组长度为: 10
arr3数组长度为: 3
我把完整demo的代码放在这里,你可以copy执行看看效果。
package main
import "fmt"
/**
www.itzhimei.com
*/
func main() {
var arr1 [10]int
//每个元素单独赋值
arr1[0] = 1
arr1[1] = 2
arr1[2] = 3
fmt.Println("arr1:",arr1)
//定义变量同时赋值
arr2 := [10]int{4,5,6}
fmt.Println("arr2:",arr2)
arr3 := [...]int{7,8,9}
fmt.Println("arr3:",arr3)
for _,i :=range arr3 {
fmt.Println("arr3的元素打印:",i)
}
fmt.Println("arr1数组长度为:",len(arr1))
fmt.Println("arr2数组长度为:",len(arr2))
fmt.Println("arr3数组长度为:",len(arr3))
}