切片這個概念我是從python語言中學到的,當時感受這個東西真的比較好用。不像java語言寫起來就比較繁瑣。不過我以爲將來java語法也會支持的。java
切片能夠使用make函數來定義,也能夠像變量聲明同樣建立個未指定大小的切片。python
var x []int = make([]int, 3); y := make([]int, 3); z := []int {1, 2, 3};
make有三個參數,第一個是類型(數組類型,因此帶方括號),第二個是長度len,第三個是容量cap。長度好理解,就是值的多少。而容量就很差理解了,容量是爲了自動擴容次數減小而設計的,爲了減小擴容的次數,你能夠上來就設置大些。數組
s := arr[:] s := arr[1:2] s := arr[1:] s := arr[:2]
這個兩個函數爲了獲得切片的len和cap的。app
一個切片在未初始化以前默認爲 nil,長度爲 0。函數
append是往原有切片中增長元素。而copy是複製原有切片,若是不復制,那麼修改新的切片內容,原有對應的元素也會被修改。學習
var x []int x = append(x, 1); x = append(x, 2, 3, 4); y := make([]int, len(x), cap(x) * 2) copy(y, x);