美文网首页
Go语言向函数传递数组

Go语言向函数传递数组

作者: 醉倾城1 | 来源:发表于2020-09-01 08:38 被阅读0次

如果你想向函数传递数组参数,你需要在函数定义时,声明形参为数组,我们可以通过以下两种方式来声明:

方式一

形参设定数组大小:

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

方式二

形参未设定数组大小:

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

实例

让我们看下以下实例,实例中函数接收整型数组参数,另一个参数指定了数组元素的个数,并返回平均值:

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;
}

接下来我们来调用这个函数:

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;
}

以上实例执行输出结果为:

平均值为: 214.399994

以上实例中我们使用的形参并未设定数组大小。

浮点数计算输出有一定的偏差,你也可以转整型来设置精度。

package main
import (
    "fmt"
)
func main() {
    a := 1.69
    b := 1.7
    c := a * b      // 结果应该是2.873
    fmt.Println(c)  // 输出的是2.8729999999999998
}

设置固定精度:

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) // 显示
}

相关文章

  • Go语言向函数传递数组

    如果你想向函数传递数组参数,你需要在函数定义时,声明形参为数组,我们可以通过以下两种方式来声明: 方式一 形参设定...

  • (四)go语言函数&参数传递

    go语言函数 基本语法 例子 go语言参数传递

  • Go语言指针作为函数参数

    Go 语言允许向函数传递指针,只需要在函数定义的参数上设置为指针类型即可。以下实例演示了如何向函数传递指针,并在函...

  • go语言函数如何传递数组变量

    这篇文章以实践的方式验证go语言函数之间是如何传递数组类型变量的。和slice相比,go对于array传参是传递整...

  • Go 语言程序设计——集合类型(1)

    Go语言的所有内置类型:数组、切片和映射 值、指针和引用类型 值在传递给函数或者方法的时候会被复制一次 Go语言中...

  • go语言(在函数间传递数组)

    根据内存和性能来看,在函数间传递数组是一个开销很大的操作。在函数之间传递变量时,总是以值的方式传递的。如果这个变量...

  • Go语言探索 - 7(原创)

    Go语言基础系列博客用到的所有示例代码 在 上一篇文章主要学习了Go语言的函数定义、值传递和引用传递以及闭包函数。...

  • go语言传递struct, pointer和interface的

    go语言函数传参可以传递struct,传递pointer,还有传递interface,他们主要区别是什么呢? 运行...

  • Go语言函数

    GO语言函数 GO语言是由函数组成的 没有返回值没有形参的函数 有返回值没有形参的函数 没有返回值有形参的函数 有...

  • Go语言学习基础笔记

    Go 1.声明变量 2.Go语言常量 3.运算符 4.for循环 5.Go函数 6.数组声明 7.语言指针 Go ...

网友评论

      本文标题:Go语言向函数传递数组

      本文链接:https://www.haomeiwen.com/subject/qzpmsktx.html