go 数组传递给函数三种方式
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]
把一个大数组传递给函数会消耗很多内存。 有两种方法可以避免这种现象:
切片更常用
- 传递数组的指针
- 使用数组的切片
本作品采用《CC 协议》,转载必须注明作者和本文链接
推荐文章: