Go语言函数可变参数

Go语言函数可变参数教程

Go 语言 中,函数参数 可以支持指定任意的个数与 数据类型,这就是 Go 语言函数的可变参数,最典型的可变参数就是 Printf() 函数。

Golang 中函数的可变参数,必须是函数的最后一个参数,使用的形式是 ...,这其实就是一个语法糖,效果类似于 Golang 的 切片

Go语言函数可变参数详解

定义

func funName(args ...paramType){ }

说明

我们定义了一个名为 funName 的函数,参数是 args,但参数 args 的个数是不确定的,所以我们需要在参数的类型前面加上 ...

案例

Go语言函数可变参数

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

程序运行后,控制台输出如下:

13_golang函数可变参数.png

我们定义了一个函数 sum,该函数的参数是可变参数,因此我们在 main 函数调用的时候,可以传入任意个数的参数,但所有的参数的类型必须都是 int 类型的。

最后,我们看到,我们传入了两个参数 10 和 20,最后求出了他们的和,输入了四个参数,同样求出了这四个数的和。

Go语言函数可变参数

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") }

程序运行后,控制台输出如下:

14_golang函数可变参数.png

我们定义了一个函数 printStrs,该函数的参数是可变参数,因此我们在 main 函数调用的时候,可以传入任意个数的参数,但所有的参数的类型必须都是 string 类型的。

最后,我们看到,我们分别传入了两个参数和四个参数,同样都输出了他们的结果。

Go语言函数参数可变参数总结

在 Go 语言中,函数的参数可以支持指定任意的个数与数据类型,这就是 Go 语言函数的可变参数。Golang 中函数的可变参数,必须是函数的最后一个参数,使用的形式是 ...。Go 语言函数可变参数定义:

func funName(args ...paramType){ }