一、创建方式
主要分为:
1、完整创建;
2、切片创建;
//创建数组(声明长度) var array1 = [5]int{1,2,3} fmt.Printf("array1--- type:%T \n",array1) rangeIntPrint(array1[:]) //创建数组(不声明长度) var array2 = [...]int{6,7,8} fmt.Printf("array2--- type:%T \n",array2) rangeIntPrint(array2[:]) //创建数组切片 var array3 = []int{9,10,11,12} fmt.Printf("array3--- type:%T \n",array3) rangeIntPrint(array3) //创建数组(声明长度),并仅初始化其中的部分元素 var array4 = [5]string{3: "Chris",4: "Ron"} fmt.Printf("array4--- type:%T \n",array4) rangeObjPrint(array4[:]) //创建数组(不声明长度),并仅初始化其中的部分元素,数组的长度将根据初始化的元素确定 var array5 = [...]string{3: "Tom",2: "Alice"} fmt.Printf("array5--- type:%T \n",array5) rangeObjPrint(array5[:]) //创建数组切片,并仅初始化其中的部分元素,数组切片的len将根据初始化的元素确定 var array6 = []string{4: "Smith",2: "Alice"} fmt.Printf("array6--- type:%T \n",array6) rangeObjPrint(array6)
二、数组遍历
数组遍历分为:
1、下标方式遍历
2、range形式遍历
array := []int{0,1,3,4} //range遍历 for i := range array { Printf("%d \n",i) } //下标遍历 for i := 0; i < len(array); i++ { Printf("%d \n",array[i]) }
三、数组长度
//"推导型数组初始化默认以0填充" array_one := [10]int{} Println("数组内容为:",array_one) Println("数组长度:",cap(array_one),"实际长度:",len(array_one)) //"推导型数组切片make初始化可以指定初始化方案" array_two := make([]int,5,10) Println("\n数组内容为:",array_two) Println("数组长度:",cap(array_two),len(array_two))
四、数组复制
Copy(数组1,数组 2)
GoLang内置的Copy方法会复制原理是:
2、进行复制的2个数组的长、短不一致不会产生异常;
3、复制不是替换,只会影响对应下标内容;
array_A := []int{1,4,5} array_B := []int{4,6} Println(copy(array_B,array_A)) Println(array_A,array_B) /* 输出结果: 3 [1 2 3 4 5] [1 2 3] */ array_one := []int{1,5} array_two := []int{4,6} Println(copy(array_one,array_two)) Println(array_one,array_two) /* 输出结果: 3 [4 5 6 4 5] [4 5 6] */