1. 程式人生 > 實用技巧 >Go語言學習筆記十一--Go語言陣列的相關操作

Go語言學習筆記十一--Go語言陣列的相關操作

一、陣列的基本操作

 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 }