Go 中的 传递给函数

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

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

方法1

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

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

方法2

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

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

示例

现在,考虑以下函数,该函数将数组作为参数以及另一个参数,并基于传递的参数,返回通过数组的数字的平均值,如下所示:

链接:https://www.learnfk.comhttps://www.learnfk.com/go/go-passing-arrays-to-functions.html

来源:LearnFk无涯教程网

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

无涯教程网

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

技术教程推荐

从0开始做增长 -〔刘津〕

微信小程序全栈开发实战 -〔李艺〕

容器实战高手课 -〔李程远〕

Python自动化办公实战课 -〔尹会生〕

说透芯片 -〔邵巍〕

如何讲好一堂课 -〔薛雨〕

零基础入门Spark -〔吴磊〕

郭东白的架构课 -〔郭东白〕

技术领导力实战笔记 2022 -〔TGO 鲲鹏会〕

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