標籤:golang go語言
1、基本用法: a = append(a, b...) 例如:list = appened(list,[]int{1,2,3,4}...) 可以用來合并兩個列表. 不用這樣了 :list := make([]int,len(list1)+len(list2)) 然後再copy(list,list1) copy(list[len(list1):],list2)2、Copy: b = make([]T, len(a)) copy(b, a)或者: b = append([]T(nil), a...)3、Cut: a = append(a[:i], a[j:]...)4、Delete: a = append(a[:i], a[i+1:]...) 或者: a = a[:i+copy(a[i:], a[i+1:])] 例如:a[len(a)-1], a = nil, append(a[:i], a[i+1:]...)5、Delete without preserving order: a[i], a = a[len(a)-1], a[:len(a)-1] 例如: a[i], a[len(a)-1], a = a[len(a)-1], nil, a[:len(a)-1]6、Expand: a = append(a[:i], append(make([]T, j), a[i:]...)...)7、Extend: a = append(a, make([]T, j)...)8、Insert: a = append(a[:i], append([]T{x}, a[i:]...)...) 例如: s = append(s, 0) copy(s[i+1:], s[i:]) s[i] = x9、InsertVector: a = append(a[:i], append(b, a[i:]...)...)10、Pop x, a = a[len(a)-1], a[:len(a)-1]11、Push: a = append(a, x)12、Shift x, a := a[0], a[1:]13、Unshift a = append([]T{x}, a...)14、Reversing: for i := len(a)/2-1; i >= 0; i-- { opp := len(a)-1-i a[i], a[opp] = a[opp], a[i] }
Go語言Slice操作.