package main
import "fmt"
func main() {
// slice 添加元素
arr := [...]int{1,2,3}
// 因为arr定义时已经固定好 length 跟 capacity,所以添加元素只能另起一个数组
arr1 := append(arr[:],4) // 第一个参数是slice,第二个是新增元素
arr2 := append(arr1,5)
// 必须接收 append 的返回值
fmt.Println(arr1)
fmt.Println(arr2)
// 简单实例
var s []int // 初始化一个slice,此时 s == nil
for i := 1; i <= 100; i++ {
s = append(s, 2*i+1)
}
fmt.Println(s)
// 简单创建 slice
s1 := []int{1,2,3}
fmt.Println(s1)
// make 方法创建 slice
s2 := make([]int,10) //新建slice,长度10,容量默认等于长度
s3 := make([]int,10,32) //新建slice,长度10,容量32
fmt.Println("元素:",s2,"长度:",len(s2),"容量:",cap(s2))
fmt.Println("元素:",s3,"长度:",len(s3),"容量:",cap(s3))
// copy 方法复制 slice
copy(s2,s1) // 将s1 复制到 s2里面去
fmt.Println(s2) // [1 2 3 0 0 0 0 0 0 0]
// 删除 slice 里面的元素(如将2删掉)
s2 = append(s2[:1],s2[2:]...)
fmt.Println(s2)
// 删除头部
s2 = s2[1:]
// 删除尾部
s2 = s2[:len(s2)-1]
fmt.Println(s2)
}