无涯教程-Go - 传递给函数

91 阅读1分钟

如果要将一维数组作为函数的参数传递,则必须以以下两种方式之一声明函数形式参数,您可以类似的方式将多维数组作为形式参数传递。

方法1

形式参数作为大小数组如下-

void myFunction(param [10]int)
{
.
.
.
}

方法2

形式参数作为未调整大小的数组,如下所示-

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对形式参数不执行任何边界检查。

参考链接

www.learnfk.com/go/go-passi…