三十六、Go 语言 – 向函数传递数组

三十六、Go 语言 – 向函数传递数组

Go 语言的可以向函数传递数组作为参数

如果想向函数传递数组参数,我们需要在函数定义时,声明形参为数组

声明形参为数组的方法有两种

1. 形参设定数组大小

1
2
3
4
func myFunction(param [10]int)
{
// 函数体
}

2. 形参未设定数组大小

如果形参未设定数组大小,则需要额外的形参告知函数数组的大小

1
2
3
4
func myFunction(param []int, length int)
{
// 函数体
}

范例

1. 我们先定义一个 getAverage 函数

getAverage() 函数接收整型数组参数,另一个参数指定了数组元素的个数,并返回平均值

1
2
3
4
5
6
7
8
9
10
11
func getAverage(arr []int, size int) float32
{
var i int
var avg, sum float32

for i = 0; i < size; ++i {
sum += arr[i]
}

return sum / size
}

然后我们写一个范例调用上面定义的函数

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
package main

import "fmt"

func main() {
/* 数组长度为 5 */
var balance = []int {1000, 2, 3, 17, 50}
var avg float32

/* 数组作为参数传递给函数 */
avg = getAverage( balance, 5 ) ;

/* 输出返回的平均值 */
fmt.Printf( "平均值为: %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;
}

编译运行以上 Go 范例,输出结果如下

1
2
$ go run main.go
平均值为: 214.000000