如果要将一维数组作为函数的参数传递,则必须以以下两种方式之一声明函数形式参数,您可以类似的方式将多维数组作为形式参数传递。
形式参数作为大小数组如下-
void myFunction(param [10]int) { . . . }
形式参数作为未调整大小的数组,如下所示-
void myFunction(param []int) { . . . }
现在,考虑以下函数,该函数将数组作为参数以及另一个参数,并基于传递的参数,返回通过数组的数字的平均值,如下所示:
func getAverage(arr []int, int size) float32 { var i int var avg, sum float32 for i=0; i < size; ++i { sum += arr[i] } avg=sum/size return avg; }
现在,让我们调用上述函数,如下所示:
package main import "fmt" func main() { /* 一个包含 5 个元素的 int 数组 */ var balance=[]int {1000, 2, 3, 17, 50} var avg float32 /* 将数组作为参数传递 */ avg=getAverage( balance, 5 ) ; /* 输出返回值 */ fmt.Printf( "Average value is: %f ", avg ); } func getAverage(arr []int, size int) float32 { var i,sum int var avg float32 for i=0; i < size;i++ { sum += arr[i] } avg=float32(sum/size) return avg; }
将以上代码编译在一起并执行后,将产生以下输出-
Average value is: 214.400000
正如您所看到的,就函数而言,数组的长度无关紧要,因为Go对形式参数不执行任何边界检查。
祝学习愉快!(内容编辑有误?请选中要编辑内容 -> 右键 -> 修改 -> 提交!)