1. 程式人生 > >len()與cap()的區別

len()與cap()的區別

len() 可以用來檢視陣列或slice的長度

cap()可以用來檢視陣列或slice的容量

在陣列中由於長度固定不可變,因此len(arr)cap(arr)的輸出永遠相同

在slice中,len(sli)表示可見元素有幾個(也即直接列印元素看到的元素個數),而cap(sli)表示所有元素有幾個,比如:

arr := []int{2, 3, 5, 7, 11, 13}
sli := arr[1:4]
fmt.Println(sli)
fmt.Println(len(sli))
fmt.Println(cap(sli))

輸出

[3 5 7]
3
5

檢視一共有幾個元素的方法:

fmt.Println(sli[:cap(sli)])

輸出

[3 5 7 11 13]

這樣檢視有個好處就是對sli沒有影響,包括元素內容、len、cap