有时候一个函数会有很多参数,为了方便函数的使用,我们会给希望给一些参数设定默认值,调用时只需要传与默认值不同的参数即可,类似于 python 里面的默认参数和字典参数,虽然 golang 里面既没有默认参数也没有字典参数,但是我们有选项模式
可变长参数列表
在这之前,首先需要介绍一下可变长参数列表,顾名思义,就是参数的个数不固定,可以是一个也可以是多个,最典型的用法就是标准库里面的 fmt.Printf
,语法比较简单,如下面例子实现任意多个参数的加法
func add(nums ...int) int {
sum := 0
for _, num := range nums {
sum += num
}
return sum
}
So(add(1, 2), ShouldEqual, 3)
So(add(1, 2, 3), ShouldEqual, 6)
在类型前面加 ...
来表示这个类型的变长参数列表,使用上把参数当成 slice
来用即可
选项模式
假设我们要实现这样一个函数,这个函数接受5个参数,三个 string
(其中第一个参数是必填参数),两个 int
&#x