前端之家收集整理的这篇文章主要介绍了
Go语言Slice操作.,
前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
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],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] = x
9、InsertVector:
a = append(a[:i],append(b,a[i:]...)...)
10、Pop
x,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]
}