小白教程
所有教程
关于
Search
172.69.59.44
172.69.59.44
参数设置
贡献
退出
操作
编辑
移动
保护
信息
历史
删除
查看“Go passing arrays to functions”的源代码
本页内容
上一节:
Go_multi_dimensional_arrays
因为以下原因,您没有权限编辑本页:
您请求的操作仅限属于该用户组的用户执行:
用户
您可以查看和复制此页面的源代码。
{{DISPLAYTITLE:向函数传递数组}}[[Category:go arrays|2]] = Go 语言向函数传递数组 = [[go arrays|Go 语言数组]] 如果你想向函数传递数组参数,你需要在函数定义时,声明形参为数组,我们可以通过以下两种方式来声明: === 方式一 === 形参设定数组大小: <pre>void myFunction(param [10]int) { . . . } </pre> === 方式二 === 形参未设定数组大小: <pre>void myFunction(param []int) { . . . } </pre> == 让我们看下以下实例,实例中函数接收整型数组参数,另一个参数指定了数组元素的个数,并返回平均值: <sample title="" desc="" lang="go" hererun="1"> func getAverage(arr []int, size int) float32 { var i int var avg, sum float32 for i = 0; i < size; ++i { sum += arr[i] } avg = sum / size return avg; } </sample> 接下来我们来调用这个函数: <sample title="" desc="" lang="go" hererun="1"> package main import "fmt" func main() { /* 数组长度为 5 */ var balance = [5]int {1000, 2, 3, 17, 50} var avg float32 /* 数组作为参数传递给函数 */ avg = getAverage( balance, 5 ) ; /* 输出返回的平均值 */ fmt.Printf( "平均值为: %f ", avg ); } func getAverage(arr [5]int, size int) float32 { var i,sum int var avg float32 for i = 0; i < size;i++ { sum += arr[i] } avg = float32(sum) / float32(size) return avg; } </sample> 以上实例执行输出结果为: <pre>平均值为: 214.399994 </pre> 以上实例中我们使用的形参并未设定数组大小。 浮点数计算输出有一定的偏差,你也可以转整型来设置精度。 <sample title="" desc="" lang="go" hererun="1"> package main import ( "fmt" ) func main() { a := 1.69 b := 1.7 c := a * b // 结果应该是2.873 fmt.Println(c) // 输出的是2.8729999999999998 } </sample> 设置固定精度: <sample title="" desc="" lang="go" hererun="1"> package main import ( "fmt" ) func main() { a := 1690 // 表示1.69 b := 1700 // 表示1.70 c := a * b // 结果应该是2873000表示 2.873 fmt.Println(c) // 内部编码 fmt.Println(float64(c) / 1000000) // 显示 } </sample> [[go arrays|Go 语言数组]]
返回至“
Go passing arrays to functions
”。
上一节:
Go_multi_dimensional_arrays