append函數(shù)更換底層數(shù)組,是不是等于這時候切片就是一個新的數(shù)組?
append函數(shù)更換底層數(shù)組,是不是等于這時候切片就是一個新的數(shù)組?
我測試了一下,如果append沒有超過切片容量的話是修改原數(shù)組,如果超過切片的容量的話是更換數(shù)組,這個是怎么個機制?這樣設(shè)計有點繞,是針對什么樣的實際場景呢?
append函數(shù)更換底層數(shù)組,是不是等于這時候切片就是一個新的數(shù)組?
我測試了一下,如果append沒有超過切片容量的話是修改原數(shù)組,如果超過切片的容量的話是更換數(shù)組,這個是怎么個機制?這樣設(shè)計有點繞,是針對什么樣的實際場景呢?
2018-01-07
舉報
2018-01-07
首先明確 append 為Go的預(yù)聲明標(biāo)識符(也就是俗稱內(nèi)置函數(shù)),切片僅僅是對go數(shù)組的抽象。
內(nèi)建函數(shù)append將元素追加到切片的末尾。若它有足夠的容量,其目標(biāo)就會重新切片以容納新的元素。否則,就會分配一個新的基本數(shù)組。append返回更新后的切片,因此必須存儲追加后的結(jié)果。
作為特例,可以向一個字節(jié)切片append字符串,如下: