您好,登錄后才能下訂單哦!
數組
是內置(build-in)類型,是一組同類型數據的集合,它是值類型,通過從0開始的下標索引訪問元素值。在初始化后長度是固定的,
無法修改其長度。當作為方法的參數傳入時將復制一份數組而不是引用同一指針。數組的長度也是其類型的一部分,通過內置函數
len(array)獲取其長度。
注意:和C中的數組相比,又是有一些不同的
1、Go中的數組是值類型,換句話說,如果你將一個數組賦值給另外一個數組,那么,實際上就是將整個數組拷貝一份
2、如果Go中的數組作為函數的參數,那么實際傳遞的參數是一份數組的拷貝,而不是數組的指針。這個和C要區分開。因此,在Go
中如果將數組作為函數的參數傳遞的話,那效率就肯定沒有傳遞指針高了。
3、array的長度也是Type的一部分,這樣就說明[10]int和[20]int是不一樣的。
切片
數組的長度不可改變,在特定場景中這樣的集合就不太適用,Go中提供了一種靈活,功能強悍的內置類型Slices切片(“動態數組"),與
數組相比切片的長度是不固定的,可以追加元素,在追加時可能使切片的容量增大。切片中有兩個概念:一是len長度,二是cap容
量,長度是指已經被賦過值的最大下標+1,可通過內置函數len()獲得。容量是指切片目前可容納的最多元素個數,可通過內置函數
cap()獲得。切片是引用類型,因此在當傳遞切片時將引用同一指針,修改值將會影響其他的對象。
以上就是golang數組和切片的區別是什么的詳細內容,更多請關注億速云其它相關文章!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。