1. 程式人生 > >Go 陣列和Slice

Go 陣列和Slice

GO 語言中 和Java 的陣列類似都是固定長度的

定義陣列

Go 語言中陣列的定義有兩種方式
1. 使用 var 來定義 語法如下:
var name[length]Type 定義陣列需要定義其 名稱,長度,數組裡面儲存的資料型別
例如:
var index [10] int
var name [20] string
………
2. 如果在函式內部定義陣列並且給陣列初始化某些值則可以如下的方式來定義
arrys := [6]int{1, 2, 3, 4, 5, 6}

陣列的預設元素

預設情況下陣列定義時沒初始化,則陣列都會有預設值,如果是int 型別的陣列, 裡面的預設值都是 0 ,如果是 string型別的陣列 則預設是 ” ”
例如 下面的陣列:
var index [10] int


預設初始化為 [0,0,0,0,0,0,0,0,0,0]

獲取陣列的長度

陣列的長度可以使用len 函式來獲取
例如:
a1 :=[6] int {1,2,3,4,5,6}
length := len(a1)

切片 Slice

slice和陣列有著緊密的聯絡
例如 陣列 a := [6] int {1,2,3,4,5,6} 我們使用使用切片的方式獲取第1 – 3 個元素
a1 := a[0:2]
這種方式時 a1 就已經是slice 型別的 可以對其進行 append 操作
a2 := append(a1, 20)
陣列是不支援append的,但是slice 支援
陣列支援使用 == 進行比較兩個陣列是否相等 但是slice 不支援