1、数组是具有固定长度且拥有零个或多个相同数据类型元素的序列。因为数组的长度固定,所以go语言里很少使用,
slice的长度可以增加或缩短,使用较多
2、Go内置len函数。可以返回数组的元素个数
3、如果省略号“...”出现在整个数组长度的位置,那么数组的长度有初始化数组的元素个数决定。
4、数组的长度是数组的一部分,所以[3]int和 [4]int 是两种不同的数组类型,数组的长度必须是常量表达式
5、数组的比较只能是==或!= 两种比较,没有其他比较
package main
import "fmt"
func main() {
//一维数组
//使用数组字面量根据一组值来初始化一个数组
var a [3]int
a = [3]int{1, 23, 3} //[3]int这一部分的必不可少,和c有区别
fmt.Println(a) //可以打印整个数组
fmt.Println(a[1]) //可以打印整个数组
//定义并初始化
b := [4]int{12, 1, 3} //[12 1 3 0]
fmt.Println(b)
//指定位置初始化
c := [4]int{2: 1, 3: 4} //[0 0 1 4]
fmt.Println(c)
//测试不制定数组长度:错误,这是切片的定义 ,切片的底层还是一个数组
d := []int{1, 2, 3}
fmt.Println(d) //可以使用
//数组长度由初始化决定
e := [...]int{1, 2, 3}
fmt.Println(e) //可以使用
//二维数组
var a [3][4]int //[3][4]int 这就是二位数组类型
fmt.Println(a) //[[0 0 0 0] [0 0 0 0] [0 0 0 0]]
//部分初始化
b := [2][3]int{1: {3, 6, 9}}
fmt.Println(b) //[[0 0 0] [3 6 9]]
c := [2][3]int{1: {1: 5}}
fmt.Println(c) //[[0 0 0] [0 5 0]]
}