Golang 第五章 7.可变参数函数

  • By v2ray节点

  • 2026-03-26 16:50:57

  • 评论

在 Go 中,函数可以接收 可变数量的参数,称为可变参数函数。



基本语法

func greet(prefix string, names ...string) {
    for _, name := range names {
        fmt.Println(prefix, name)
    }
}

greet("Hello", "Alice", "Bob") 

nums ...int → 表示函数可以接收 0 个或多个 int 参数
函数内部 nums 是一个 切片([]int)



调用可变参数函数

fmt.Println(sum())          // 0
fmt.Println(sum(1, 2, 3))   // 6
fmt.Println(sum(5, 10, 15)) // 30


将切片传入可变参数函数

如果已有一个切片,可以使用 ... 展开:

nums := []int{1, 2, 3}
fmt.Println(sum(nums...)) // 6

nums... → 展开切片,将每个元素作为单独参数传递



可变参数函数与其他参数组合

可变参数必须 放在参数列表最后

func greet(prefix string, names ...string) {
    for _, name := range names {
        fmt.Println(prefix, name)
    }
}

greet("Hello", "Alice", "Bob") 

输出:

Hello Alice
Hello Bob


可变参数函数内部类型

内部的可变参数被当作 切片类型

可以用切片方法操作:

func printAll(values ...string) {
    fmt.Println(values)      // 输出切片
    fmt.Println(len(values)) // 元素数量
}


使用场景

求和、求平均值

日志函数

格式化输出(类似 fmt.Println
批量操作函数

v2ray节点购买