切片(动态数组)
-
Go 语言切片是对数组的抽象。
Go 数组的长度不可改变,在特定场景中这样的集合就不太适用,Go 中提供了一种灵活,功能强悍的内置类型切片("动态数组"),与数组相比切片的长度是不固定的,可以追加元素,在追加时可能使切片的容量增大。
-
定义
-
var identifier []type
-
var slice1 []type = make([]type, len) 等价于 slice1 := make([]type, len)
-
make([]T, length, capacity) 指定容量
-
-
-
初始化
-
直接初始化
-
s := [] int {1,2,3}
-
-
数组初始化(引用)
-
s := arr[:]
-
-
新切片
-
s := arr[start:end]
-
s := arr[start:]
-
s := arr[:end]
-
-
make初始化
-
s := make([]int, len, cap)
-
-
-
函数
-
len()
-
获取长度
-
-
cap()
-
获取容量
-
-
append()
-
向切片追加新元素
-
var numbers []int append(nums, 0,1,2)
-
-
copy()
-
拷贝切片
-
/* 创建切片 numbers1 是之前切片的两倍容量/ numbers1 := make([]int, len(numbers), (cap(numbers))2) copy(numbers1,numbers)
-
-
-
空(nil)切片
-
一个切片在未初始化之前默认是nil,长度为0
-
-
切片截取
-
[lower:upper]
-
-
打印切片
-
func printSlice(x []int){ fmt.Printf("len=%d cap=%d slice=%v\n",len(x),cap(x),x) }
-
XMind - Trial Version
参考