在 Go 中,切片是一個代表靈活的類似數組類型的強大資料結構。使用切片時,您可能會遇到兩種不同的聲明方式:
理解這兩種方法之間的區別對於編寫高效且慣用的 Go 程式碼至關重要。
var s []int
簡單聲明 var s []int 不分配任何記憶體。它會建立一個 nil 切片,這意味著 s 指向一個空記憶體位址。當您不知道預先需要的切片的確切大小或稍後需要動態分配記憶體時,通常會使用此聲明。
s := make([]int, 0 )
相反, s := make([]int, 0) 為具有0 個元素的切片分配內存。它明確指示編譯器建立具有特定容量的切片,該容量是在需要增長之前可以容納的最大元素數。在本例中,它的容量為 0。當您知道所需切片的確切大小或想要避免不必要的記憶體重新分配時,請首選此方法。
哪個比較好?
一般來說,當您不知道所需切片的確切大小或想要分配記憶體時,使用 var s []int 更慣用動態地。如果您預先知道確切的大小或需要避免記憶體重新分配,則 s := make([]int, 0) 是更好的選擇。
以上是Go 切片: `var s []int` 或 `s := make([]int, 0)` – 哪一種宣告最好?的詳細內容。更多資訊請關注PHP中文網其他相關文章!