一、值传递
package main import "fmt" //值传递 基本类型、array.struct func main() { arr := [4]int{1, 2, 3, 4} changeArr(arr) fmt.Println(arr) } func changeArr(arr [4]int) { fmt.Println("接收到的参数", arr) arr[0] = 5 fmt.Println("修改后的参数", arr) }
接收到的参数 [1 2 3 4] 修改后的参数 [5 2 3 4] [1 2 3 4]
二、引用传递
package main import "fmt" //引用传递 func main() { arr := []int{1, 2, 3, 4} changeSlice(arr) fmt.Println(arr) } func changeSlice(arr []int) { fmt.Println("接收到的参数", arr) arr[0] = 5 fmt.Println("修改后的参数", arr) }
接收到的参数 [1 2 3 4] 修改后的参数 [5 2 3 4] [5 2 3 4]