// 新建一个数组 var arr [3]int arr[0] = 1 arr[1] = 2 arr[2] = 3 // for循环 for i := 0; i < len(arr); i++ { fmt.Println(arr[i]) } fmt.Println("-----------") // for range循环 for i, v := range arr { fmt.Println(i, v) }
新建和初始化数组的方式
四种初始化方式
1 2 3 4 5 6 7 8 9 10 11
var arr1 [3]int = [3]int{1, 2, 3} fmt.Println(arr1) var arr2 = [3]int{1, 2, 3} // 自动推断类型 fmt.Println(arr2) var arr3 = [...]int{1, 2, 3} // 不定义长度 fmt.Println(arr3) var arr4 = [...]int{1: 10, 0: 20, 2: 30} // 不按顺序的下标 fmt.Println(arr4)
for i := 0; i < len(arr); i++ { for j := 0; j < len(arr[i]); j++ { fmt.Println(arr[i][j]) } } fmt.Println("-----------") for i, v := range arr { for j, w := range v { fmt.Println(i, j, w) } }
切片 slice()
语法: var 切片名 []类型 = 数组名[开始,结束] 切片是一种建立在数组类型之上的抽象,提供比数组更强大的能力 切片是对数组的一个连续片段的引用,所以切片是一个引用类型. 这个片段可以是整个数组,或者是起始和终止索引标识的一些项的子集. 终止索引标识的项不包含在切片内,切片提供了一个相关数组的动态窗口.