把一个大数组传递给函数会消耗很多内存(我不知道这句话是否适用于所有语言)。有两种方法可以避免这种现象:
- 传递数组的指针
- 使用数组的切片
接下来的例子阐明了第一种方法:
package main
import "fmt"
func main() {
array := [3]float64{7.0, 8.5, 9.1}
x := Sum(&array) // Note the explicit address-of operator
// to pass a pointer to the array
fmt.Printf("The sum of the array is: %f", x)
}
func Sum(a *[3]float64) (sum float64) {
for _, v := range a { // derefencing *a to get back to the array is not necessary!
sum += v
}
return
}
输出结果:
The sum of the array is: 24.600000
但这在 Go 中并不常用,通常使用切片
转载地址
https://github.com/Unknwon/the-way-to-go_ZH_CN/blob/master/eBook/07.1.md