在 Go 语言 中,函数 的 参数 可以支持指定任意的个数与 数据类型,这就是 Go 语言函数的可变参数,最典型的可变参数就是 Printf() 函数。
Golang 中函数的可变参数,必须是函数的最后一个参数,使用的形式是 ...
,这其实就是一个语法糖,效果类似于 Golang 的 切片。
func funName(args ...paramType){
}
我们定义了一个名为 funName 的函数,参数是 args,但参数 args 的个数是不确定的,所以我们需要在参数的类型前面加上 ...
。
Go 语言函数可变参数,可以传入任意个数的参数
package main
import (
"fmt"
)
func sum(args ...int)int{
sum := 0
for _, arg := range args{
sum += arg
}
return sum
}
func main() {
fmt.Println("嗨客网(www.haicoder.net)")
//Go语言函数可变参数,可以传入任意个数的参数
retSum1 := sum(10, 20)
retSum2 := sum(10, 20, 30, 50)
fmt.Println("retSum1 =", retSum1, ", retSum2 =", retSum2)
}
程序运行后,控制台输出如下:
我们定义了一个函数 sum,该函数的参数是可变参数,因此我们在 main 函数调用的时候,可以传入任意个数的参数,但所有的参数的类型必须都是 int 类型的。
最后,我们看到,我们传入了两个参数 10 和 20,最后求出了他们的和,输入了四个参数,同样求出了这四个数的和。
Go 语言函数可变参数,可以传入任意个数的参数
package main
import (
"fmt"
)
func printStrs(args ...string){
for _, arg := range args{
fmt.Print(arg, ", ")
}
fmt.Println()
}
func main() {
fmt.Println("嗨客网(www.haicoder.net)")
//Go语言函数可变参数,可以传入任意个数的参数
printStrs("Hello", "HaiCoder")
printStrs("I", "Love", "ShangHai")
}
程序运行后,控制台输出如下:
我们定义了一个函数 printStrs,该函数的参数是可变参数,因此我们在 main 函数调用的时候,可以传入任意个数的参数,但所有的参数的类型必须都是 string 类型的。
最后,我们看到,我们分别传入了两个参数和四个参数,同样都输出了他们的结果。
在 Go 语言中,函数的参数可以支持指定任意的个数与数据类型,这就是 Go 语言函数的可变参数。Golang 中函数的可变参数,必须是函数的最后一个参数,使用的形式是 ...
。Go 语言函数可变参数定义:
func funName(args ...paramType){
}