【Go 语言社区】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() { /* an int array with 5 elements */ var balance = []int {1000, 2, 3, 17, 50} var avg float32 /* pass array as an argument */ avg = getAverage( balance, 5 ) ; /* output the returned value */ 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不进行形式参数的边界检查。

原文发布于微信公众号 - Golang语言社区(Golangweb)

原文发表时间:2016-02-10

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏IMWeb前端团队

玩转JavaScript正则表达式

Why Regular Expression 我们先来看看,我们干哈要学正则表达式这玩意儿: 复杂的字符串搜寻、替换工作,无法用简单的方式(类似借助标准库函数)...

26150
来自专栏Java帮帮-微信公众号-技术文章全总结

09.Java图形打印

09.Java图形打印 Java 实例 – 打印菱形 输出指定行数的菱形。 实例 ? 输出结果: ? ---- Java 实例 – 九九乘法表 输出九九乘法表。...

55050
来自专栏Golang语言社区

Go语言入门基础

指针 Go 具有指针。 指针保存了变量的内存地址。 类型 *T 是指向类型 T的值的指针。其零值是 nil 。 var p *int 复制代码 & 符号会生成一...

38270
来自专栏HTML5学堂

获取对象具体类型的功能函数

HTML5学堂:JavaScript当中,时常会使用到typeof来进行数据类型的检测,但是我们觉得typeof不能够满足我们的需求,对于数组、函数、时间对象等...

33170
来自专栏雪胖纸的玩蛇日常

老男孩Python全栈开发(92天全)视频教程 自学笔记06

21260
来自专栏章鱼的慢慢技术路

Go指南_切片的长度与容量

12940
来自专栏deepcc

Javascript 浮点计算问题分析与解决

37490
来自专栏Golang语言社区

Golang 语言范围(Range)

Go 语言中 range 关键字用于for循环中迭代数组(array)、切片(slice)、链表(channel)或集合(map)的元素。在数组和切片中它返回元...

35970
来自专栏用户2442861的专栏

css选择器中:first-child与:first-of-type的区别

http://www.cnblogs.com/2050/p/3569509.html

10010
来自专栏五分钟学算法

每天一算:Contains Duplicate II

15230

扫码关注云+社区

领取腾讯云代金券