目录
在 Go 中导入包
理解 Go 中包的可见性
如何在 Go 中编写条件语句
如何在 Go 中编写 Switch 语句
如何在 Go 中构造 for 循环
在循环中使用 Break 和 Continue
如何在 Go 中定义并调用函数
如何在 Go 中使用可变参数函数
了解 Go 中的 defer
了解 Go 中的 init
用构建标签定制 Go 二进制文件
了解 Go 中的指针
在 Go 中定义结构体
在 Go 中定义方法
如何构建和安装 Go 程序
如何在 Go 中使用结构体标签
如何在 Go 使用 interface
在不同的操作系统和架构编译 Go 应用
用 ldflags 设置 Go 应用程序的版本信息
在 Go 里面如何使用 Flag 包
介绍
可变参数函数 是可以接受零个、一个或多个值作为单个参数的函数。虽然可变参数函数并不常见,但它们能够使您的代码更清晰、更具可读性。
可变参数函数其实很常见。最常见的是fmt
[1]包中的 Println
。
func Println(a ...interface{}) (n int, err error)
参数前面带有一组省略号 ( ...
)的函数(点击查看往期文章) 被视为可变参数函数。省略号表示提供的参数可以是零个、一个或多个。对于fmt.Println
包,它声明参数a
是可变参数。
让我们创建一个使用 fmt.Println
函数并传入零个、一个或多个值的程序:
package main
import "fmt"
func main() {
fmt.Println()
fmt.Println("one")
fmt.Println("one", "two")
fmt.Println("one", "two", "three")
}
第一次调用 fmt.Println
时,我们不传递任何参数。第二次调用时,我们只传入一个参数,值为 one
。然后我们传递 one
和 two
,最后是 one
,two
和 three
三个值。
让我们使用以下命令运行程序:
$ go run print.go
我们将看到以下输出:
Output
one
one two
one two three
输出的第一行为空。这是因为我们在第一次调用 fmt.Println
时没有传递任何参数。第二次打印了 one
。然后打印 one
和 two
,最后打印 one
,two
和 three
。
现在我们已经了解了如何调用可变参数函数,让我们看看如何定义自己的可变参数函数。
定义可变参数函数
我们可以通过在参数前面使用省略号 ( ...
) 来定义可变参数函数。让我们创建一个程序,当人们的名字被发送到函数时会进行问候: