拷貝大切片必定比小切片代價大嗎?git
並非,拷貝全部切片的代價都是同樣的。數組
看一下源碼,就很清楚了:網站
type slice struct { array unsafe.Pointer len int cap int }
由於切片的底層有三個字段(一個 unsafe.Pointer
,兩個 int
)。指針
其中 unsafe.Pointer
指向的是切片底層數組的指針,這是切片的存儲空間,第二個字段是切片的長度,第三個字段是切片的容量。code
將一個切片變量分配給另外一個變量只會複製三個機器字,因此拷貝大切片與小切片的代價是同樣的。get
大切片與小切片的區別無非就是 len
和 cap
這兩個值的大小不同。源碼
歡迎訪問個人我的網站:博客
李培冠博客:lpgit.comit