陣列是指一系列相同類型資料的集合。陣列中包含的每個資料稱為陣列元素(element),這種類型可以是任意的原始類型,例如 int、string 等,也可以是使用者自訂的類型。 (建議學習中:go#)
一個陣列所包含的元素個數稱為陣列的長度。在 Golang 中陣列是一個長度固定的資料型別,陣列的長度是型別的一部分,也就是說 [5]int 和 [10]int 是兩個不同的型別。
Golang 中數組的另一個特點是佔用記憶體的連續性,也就是說數組中的元素是被分配到連續的記憶體位址中的,因而索引數組元素的速度非常快。
Golang 陣列的特點
我們可以把Golang 陣列的特徵歸納為以下三點:
固定長度:這表示陣列不可增長、不可縮減。想要擴充數組,只能建立新數組,將原始數組的元素複製到新數組。
記憶體連續:這意義可以在快取中保留的時間更長,搜尋速度更快,是一種非常高效的資料結構,同時也意味著可以透過數值的方式(arr[index])索引數組中的元素。
固定類型:固定類型意味著限制了每個陣列元素可以存放什麼樣的數據,以及每個元素可以存放多少位元組的資料。
陣列是固定長度的資料類型,其長度和儲存元素的資料類型都在宣告陣列時確定,且不能變更。如果需要儲存更多的元素,必須先建立一個更長的數組,然後把原來數組裡的資料複製到新數組中。
陣列所佔用的記憶體是連續分配的,例如我們建立一個包含5 個整數元素的陣列:
arr1 := [5]int{10,20,30,40,50}
陣列在記憶體中的結構類似下圖:
由於記憶體連續,CPU 能把正在使用的資料快取更久的時間。而且在記憶體連續的情況下非常容易計算索引,也就是說可以快速迭代數組裡的所有元素。
原因是數組的類型資訊可以提供每次訪問一個元素時需要在記憶體中移動的距離,既然數組的每個元素的類型都相同,又是連續分配,因此就可以以固定的速度索引數組中的任意元素,而且速度非常快!
以上是golang 數組存的是什麼的詳細內容。更多資訊請關注PHP中文網其他相關文章!