问答详情
源自:5-3 Go语言-切片的更多操作方法

不明白为啥值变成了2, 3, 4, 5

slice1 = slice1[:cap(slice1)]

    通过此操作,变量slice1的值变为了[]int{2, 3, 4, 5},且其长度和容量均为4


提问者:幕布斯6043745 2023-06-26 20:10

个回答

  • BioCrossCoder
    2023-07-21 15:26:26

    初始化slice1时,它的底层数组值是[5]int{1,2,3,4,5},切片本身的值是[]int{2,3,4},容量是数组长度-切片第一个元素在数组中的索引),这里的重新赋值使得切片:下界不变、上界变为数组长度、底层数组不变,所以值就相应改变。