go 在参数列表中使用 ...
表示可变参数,例如:
import "fmt"
func Minimum(first int, others ...int) int {
min := first
for _, v := range others {
if v < min {
min = v
}
}
return min
}
func main() {
var slice = []int{2, 4, 6, 7, 8}
fmt.Println(Minimum(1, 2, 3, 4))
fmt.Println(Minimum(slice[0], slice[1:]...))
}
// output
// 1
// 2
在 go 语言里 other 是一个 slice, 但是我们不能直接传入一个 silce 进入,否则传入的是引用。
需要用 ...
把 slice 展开。