数组本身是值类型. 切片是引用类型. 切割数组得到的数组切片是引用类型
package main import "fmt" func change(s []int) { s[2] = 100 fmt.Println(s) } func main() { arr := [8]int{1, 2, 3, 4, 5, 6, 7, 8} sliarr := arr[1:5] fmt.Println(sliarr) change(sliarr) fmt.Println(arr) }
[2 3 4 5] [2 3 100 5] [1 2 3 100 5 6 7 8]