说明
为什么用切片:
1.数组的容量固定,不能自动拓展。
2.值传递。数组作为函数参数时,将整个数组值拷贝一份给形参。
在Go语言当,我们几乎可以在所有的场景中,使用切片替换数组使用。
切片的本质:
不是一个数组的指针,是一种数据结构体,用来操作数组内部元素。
runtime/slice.go
type slice struct {
*p
len
cap
}
切片的使用:
切片名称[low:high:max]
low:起始下标位置
high:结束下标位置
长度: len = high - low
容量: cap = max - low
代码
package main
import "fmt"
func main() {
arr := []int {1, 2, 3, 4, 5, 6}
s := arr[1:3:5]
fmt.Println("s = ", s)
fmt.Println("len(s)=", len(s))
fmt.Println( "cap(s) = ", cap(s))
}
输出:
s = [2 3]
len(s)= 2
cap(s) = 4