func reverse3(s []int) {
s = append(s, 999)
fmt.Println("middle: ", s)
for i, j := 0, len(s)-1; i < j; i++ {
j = len(s) - (i + 1)
s[i], s[j] = s[j], s[i]
}
fmt.Println("internal: ", s)
}
func Test3(t *testing.T) {
var s []int
for i := 1; i <= 3; i++ {
s = append(s, i)
}
fmt.Println(s)
reverse3(s)
fmt.Println(s) // todo 这个老变量 的指针 还是3个
/**
[1 2 3]
middle: [1 2 3 999]
internal: [999 3 2 1]
[999 3 2]
*/
}
切片 定义:
type slice struct {
array unsafe.Pointer
len int // 这个值 外边A 里面A 不一样了.
cap int
}