slice比较特别,可以理解为“半个reference“。slice本身是指向一个底层数组的,而slice本身只记录数组的地址,容量和当前尺寸。所以当你传递slice时,slice本身被复制,底层数组就一份。
题目中的swap只对底层数组进行操作,通过调用前的slice还是调用后的slice都是一样的。
的确slice的行为和大部分值类型不太一样,慢慢习惯吧:)
slice比较特别,可以理解为“半个reference“。slice本身是指向一个底层数组的,而slice本身只记录数组的地址,容量和当前尺寸。所以当你传递slice时,slice本身被复制,底层数组就一份。
题目中的swap只对底层数组进行操作,通过调用前的slice还是调用后的slice都是一样的。
的确slice的行为和大部分值类型不太一样,慢慢习惯吧:)