定义数组(2种方式):
var arr = [5]int{1,2,3,4,5} // 指定数组长度为5
var arr2 = [...]int{1,2,3,4,5,6,7,8,9} // "..."表示由编译器确定数组大小(9)
可以先定义数组后赋值
var arr [4]int // 也要指定长度
arr[0]=1; arr[1]=2; arr[2]=3; arr[3]=4
Go 语言数组声明需要指定元素类型及元素个数
不指定也会根据初始化的元素个数自动推算出大小,不可改变
数组需要明确指定大小,切片不指定大小
定义切片:
func main() {
/*通过数组来初始化切片*/
var arr = [...]int {2,6,9,8,1} // 先定义数组, 大小为5
var s1 = arr[:] // 切片s1 -> [2,6,9,8,1]
var s2 = arr[1:3] // [6,9] 取不到最后一个, 1<= index <3
var s3 = arr[1:] // [6,9,8,1]
var s4 = arr[:4] // [2,6,9,8] 取不到最后一个
/*通过切片来初始化切片*/
var s5 = s1[2:] // [9,8,1]
/*直接初始化切片, make([]type, len, cap)*/
var s6 = make([]int , 3, 6) // [0,0,0]
/*直接赋值初始化切片, 可以看到如下的中括号里面没有内容*/
var s7 = []int {1,2,3,4,5} // [1,2,3,4,5]
}
var s []type 用于定义切片, 通常[]type是省略了的, 所以如下是错误的操作
var s []int = [5]int{1,2,3,4,5} // 左边是定义切片, 右边是数组
数组与切片的打印可使用%v
func main() {