- package main
- import "fmt"
- func main() {
- //创建切片
- nums := []int{1, 2, 3, 4, 5}
- printSlice("nums", nums) //slice=nums,p=0xc00000c5d0,length:5,cap=5,slice=[1 2 3 4 5]
- //append 追加元素
- nums = append(nums, 10)
- printSlice("nums", nums) //slice=nums,p=0xc000014230,length:6,cap=10,slice=[1 2 3 4 5 10]
- a := []int{6, 7, 8, 9}
- //追加数组
- nums = append(nums, a...)
- printSlice("nums", nums) //slice=nums,p=0xc000014230,length:10,cap=10,slice=[1 2 3 4 5 10 6 7 8 9]
- //删除第一个元素
- nums = nums[1:]
- printSlice("nums", nums) //slice=nums,p=0xc000014238,length:9,cap=9,slice=[2 3 4 5 10 6 7 8 9]
- //删除最后一个元素
- nums = nums[:len(nums)-1]
- printSlice("nums", nums) //slice=nums,p=0xc000014238,length:8,cap=9,slice=[2 3 4 5 10 6 7 8]
- //删除中间的元素
- b := int(len(nums) / 2)
- nums = append(nums[:b], nums[b+1:]...)
- printSlice("nums", nums) //slice=nums,p=0xc000014238,length:7,cap=9,slice=[2 3 4 5 6 7 8]
- //切片copy
- nums2 := make([]int, len(nums), cap(nums)*2)
- //copy 的切片没有关联
- copy(nums2, nums)
- printSlice("nums2", nums2) //slice=nums,p=0xc000014238,length:7,cap=9,slice=[2 3 4 5 6 7 8]
- }
- func printSlice(name string, slc []int) {
- fmt.Printf("slice=%v,p=%p,length:%d,cap=%d,slice=%v \n", name, slc, len(slc), cap(slc), slc)
- }