package main import "fmt" func main() { // 1.数组的声明 关键字 变量名 [数组长度]数组类型 不初始化时数组元素值为零值 var arr [5]int fmt.Println("arr=", arr) // arr= [0 0 0 0 0] // 对未初始化数组赋值 arr[0] = 1 arr[1] = 2 arr[2] = 3 arr[3] = 4 arr[4] = 5 fmt.Println("arr=", arr) // arr= [1 2 3 4 5] // 2.数组的声明 关键字 变量名 = [数组长度]数组类型{数组元素} var arrOne = [5]int{1, 2, 3, 4, 5} fmt.Println("arrOne=", arrOne) // arrOne= [1 2 3 4 5] // 3.数组的短声明 变量名 = [数组长度]数组类型{数组元素} arrTwo := [5]int{1, 2, 3, 4, 5} fmt.Println("arrTwo=", arrTwo) // arrTwo= [1 2 3 4 5] // 4.数组部分初始化 初始化部分有值未初始化部分零值 arrThree := [5]int{1, 2} fmt.Println("arrThree=", arrThree) // arrThree= [1 2 0 0 0] // 5.数组指定索引初始化 初始化部分有值未初始化部分零值 arrFour := [5]int{1: 3, 4: 2} fmt.Println("arrFour=", arrFour) // arrFour= [0 3 0 0 2] // 6.不定长数组 编译器判定 arrFive := [...]int{1, 2, 3, 4, 5} fmt.Println("arrFive=", arrFive) // arrFive= [1 2 3 4 5] // 数组的长度 fmt.Println("数组的长度是:", len(arrFive)) // 数组的长度是: 5 // 数组遍历 for index, value := range arrFive { fmt.Printf("arr=[%d]=%d\n", index, value) // arr=[0]=1 arr=[1]=2 arr=[2]=3 arr=[3]=4 arr=[4]=5 } // 省略index遍历 for _, value := range arrFive { fmt.Printf("arr=%d\n", value) // arr=1 arr=2 arr=3 arr=4 arr=5 } // 7.数组的类型 数组的长度是类型的一部分 [3]int&[5]int 不是一个类型 arrSix := [3]int{1, 2, 3} arrSeven := [5]int{1, 2, 3, 4, 5} fmt.Printf("arrSix的类型是%T\n", arrSix) // arrSix的类型是[3] fmt.Printf("arrSeven的类型是%T\n", arrSeven) // arrSix的类型是[5] // 8.二维数组 arrEight := [2][3]string{ {"name", "long", "yang"}, {"age", "23", "24"}, } fmt.Println("arrEight=", arrEight) // arrEight= [[name long yang] [age 23 24]] // 9.数组的值传递 Go语言中数组是值类型不是引用类型 arrNine := [3]int{1, 2, 3} arrTen := arrNine arrTen[0] = 5 fmt.Println("arrNine=", arrNine) // arrNine= [1 2 3] fmt.Println("arrTen=", arrTen) // arrTen= [5 2 3] }
最新评论