Go 中的 传递给函数

首页 / Golang入门教程 / Go 中的 传递给函数

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

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

无涯教程网

祝学习愉快!(内容编辑有误?请选中要编辑内容 -> 右键 -> 修改 -> 提交!)

技术教程推荐

深入浅出区块链 -〔陈浩〕

Go语言核心36讲 -〔郝林〕

Netty源码剖析与实战 -〔傅健〕

后端技术面试 38 讲 -〔李智慧〕

Electron开发实战 -〔邓耀龙〕

分布式数据库30讲 -〔王磊〕

容量保障核心技术与实战 -〔吴骏龙〕

大数据经典论文解读 -〔徐文浩〕

结构沟通力 -〔李忠秋〕

好记忆不如烂笔头。留下您的足迹吧 :)