9.1 Go 函数可变数量参数传参
众所周知,Go语言是严格类型语言,而开发的时候又遇到传入参数不定的情况,怎么办?golang 为我们提供了接入多值参数用于解决这个问题。
1、示例:
package main
import "fmt"
func main() {
//multiParam 可以接受可变数量的参数
multiParam("jerry", "herry")
multiParam("php", "mysql", "js")
}
func multiParam(args ...string) {
//接受的参数放在args数组中
for _, e := range args {
fmt.Println(e)
}
}
需要注意的是,可变参数是函数最右边的参数。如
2、示例:
package main
import "fmt"
func main() {
//multiParam 可以接受可变数量的参数
multiParam("jerry", 1)
multiParam("php", 1, 2)
}
func multiParam(name string, args ...int) {
fmt.Println(name)
//接受的参数放在args数组中
for _, e := range args {
fmt.Println(e)
}
}
可以向一个已有的切片加可变参数运算符 ”…“ 后缀的方式将其传入可变参数函数。
3、示例:
package main
import "fmt"
func multiParam(args ...string) {
for _, e := range args {
fmt.Println(e)
}
}
func main() {
names := []string{"jerry", "herry"}
multiParam(names...)
}
它和multiParam(“jerry”, “herry”) 写法是效果一样,只是可变参数传值方法不会创建新的切片,直接使用传递的切片。