go语言数组长度是不可变的
简单切片演示
package main
import "fmt"
func main() {
//源数组
s := [] int {1,2,3,4,5}
fmt.Println(s)
//第1个到第2个(不包括第三个)
s2 := s[0:2]
fmt.Println(s2)
//第3个到第4个(不包括第五个)
var s3 []int = s[2:4]
fmt.Println(s3)
//第三个到最后
s4 := s[2:]
fmt.Println(s4)
//第一个到第4个
var s5 []int = s[:4]
fmt.Println(s5)
}
定义切片
var identifier []type = make([]type,len,capacity)
len是切片的长度,capacity是切片最长可达到多少,是切片起始元素到底层数组最后一个元素个数。
通过len()和cap()函数可以获取这两个参数
append()和copy()函数
append和数据结构的append是一个意思,在末尾追加
如上面的数组s5
s5 = append(s5,111)
后,再输出s5得[1 2 3 4 111]
并且可以同时追加多个元素,如:
s5 = append(s5,111,2222,3333)
copy为复制
copy(s1,s2)
s1数组就会变成s2一样的值
cap说明
可能有点疑惑为什么有cap
如果我们超过cap,则cap会自动增加大小
所以cap并不起限制作用,只是切片的一个指标,表示从才是切片到最后的长度,方便变换操作