Go語言學習筆記十一--Go語言陣列的相關操作
阿新 • • 發佈:2020-07-16
一、陣列的基本操作
1 package main 2 3 import "fmt" 4 5 func main() { 6 var arr[5] int 7 //陣列會自動將自己的元素初始化 8 fmt.Println(arr) 9 //給其中的一個元素賦值 10 arr[0] = 11 11 arr[2] = 33 12 fmt.Println("arr = ", arr) 13 14 var arr1 [3]int = [3]int{11,22,33} // var arr1 = [3]int{11,22,33} 這兩中寫法都可以15 fmt.Println("arr1 = ", arr1) 16 17 arr2 := []int{44,55,66} 18 fmt.Println("arr2 = ", arr2) 19 //len用於求長度 20 fmt.Println("arr2 的長度為:",len(arr2)) 21 22 arr3 := [5]int{10} 23 fmt.Println("arr3 = ", arr3) 24 25 //通過下標進行賦值 26 arr4 := [7]int{2:100,5:555} 27 fmt.Println("arr4 = ", arr4)28 29 //區別於C語言裡面陣列名就是一個指標 在go語言裡面 陣列的長度是陣列元素的一部分,其長度不同的不能相互之間進行賦值 30 var arr5 [5]int 31 var arr6 [5]int 32 var arr7 [6]int 33 arr5 = arr6 //合法 34 //arr6 = arr7 //報錯 35 fmt.Println(arr5) 36 fmt.Println(arr6) 37 fmt.Println(arr7) 38 //陣列的遍歷 39 for i:=0;i<len(arr1);i++ {40 fmt.Printf("arr1[%d] = %d\n",i,arr1[i]) 41 } 42 43 println("下面我們使用for range的方式來遍歷陣列") 44 for index, value := range arr1{ 45 fmt.Printf("arr1[%d] = %d\n",index, value) 46 } 47 println("下面我們使用for range的方式來遍歷陣列,並且只輸出他的值") 48 //range有兩個返回值 使用下劃線_ 來忽略第一個返回值 49 for _, value := range arr1{ 50 fmt.Printf(" %d\n", value) 51 } 52 }
二、陣列的複製
1 package main 2 3 import "fmt" 4 func arrayModify(c [5]int){ 5 c[0] = 1000 6 } 7 func main() { 8 9 var a [5]int = [5]int{6,5,2,3,8} 10 b := a //這種方式是新開一個記憶體,將a裡面的所有值都複製一份到陣列b 11 12 b[0] = 88 13 b[1] = 99 14 fmt.Printf("a[] = %v\n",a) 15 fmt.Printf("b[] = %v\n",b) 16 arrayModify(b) //你會發現執行這個函式 其實啥也沒變 17 fmt.Printf("b[] = %v\n",b) 18 }