一.可以改变数组值(Slice本身没有数据是对底层数组的View
import (
"fmt"
)
func printArry(arr []int) { //切片
arr[0] = 10
for _, v := range arr {
fmt.Println(v)
}
}
func main() {
arr1 := [...]int{3, 4, 55}
printArry(arr1[:]) //切片
fmt.Println(arr1)
}
二.Slice的扩展
func main() {
arr := [...]int{0, 1, 2, 3, 4, 5, 6, 7}
s1 := arr[2:6]
s2 := s1[3:5]
fmt.Println(s1)//[2 3 4 5]
fmt.Println(s2)// [5 6]
}
三Slice的创建
s5 := make([]int, 15, 32)
fmt.Printf("s5=%v,len(s5)=%d, cap(s5)=%j\n", s5, len(s5), cap(s5))
四Slice的复制
s3 := []int{4, 5, 6}
s4 := make([]int, 16)
//s5 := make([]int, 15, 32)
//fmt.Printf("s5=%v,len(s5)=%d, cap(s5)=%j\n", s5, len(s5), cap(s5))
copy(s4, s3)
printSlice(s4) //s=[4 5 6 0 0 0 0 0 0 0 0 0 0 0 0 0],len(s)=16, cap(s)=%!j(int=16)
五删除元素
s4 = append(s4[:2], s4[3:]...)
printSlice(s4)//s=[4 5 0 0 0 0 0 0 0 0 0 0 0 0 0],len(s)=15, cap(s)=%!j(int=16)