func main() {
arr1 := [5]int{}
//值傳遞
arr(arr1)
fmt.Println(arr1)
//& 地址傳遞 (指標)
arra(&arr1)
fmt.Println(arr1)
//切片 地址傳遞
arrs(arr1[:])
fmt.Println(arr1)
}
func arr(a [5]int) { a[0] = 100 } //[0 0 0 0 0]
func arra(a *[5]int) { a[0] = 200 } //[200 0 0 0 0]
func arrs(a []int) { a[0] = 300 } //[300 0 0 0 0]
把一個大陣列傳遞給函式會消耗很多記憶體。 有兩種方法可以避免這種現象:
切片更常用
- 傳遞陣列的指標
- 使用陣列的切片