Go 函数的可变参数的代码示范

15 min read

可变参数可以通过在参数类型前加上省略号来定义。下面是一个简单的示例,它使用可变参数来计算一组数字的平均值:

func average(nums ...float64) float64 {
    sum := 0.0
    count := len(nums)
    for _, num := range nums {
        sum += num
    }
    return sum / float64(count)
}

func main() {
    fmt.Println(average(1, 2, 3, 4, 5))  // 输出 3
    fmt.Println(average(2.5, 7.5, 10.0)) // 输出 6.666666666666667
}

在函数 average 的参数列表中,nums ...float64 表示 nums 参数是一个可变参数,其类型为 float64。当调用这个函数时,可以向它传递任意数量的 float64 值,它们会被自动封装成一个切片。

在函数体内,我们首先计算该切片的长度,然后使用 for 循环将其中的每个数字累加到 sum 变量中。最后,我们将 sum 除以 count 得到平均值,并将其作为函数的返回值。