后端开发|Golang

详解golang中的不定参数

详解golang中的不定参数

不定参数是指函数传入的参数个数为不定数量。A、函数定义

首先来看如何定义一个不定参数的函数:

func YourFun(v... interface{}){}
...interface{}

B、“…”

上面我们看到有三个点”…”的特殊标记。那么这三个点”…”有啥作用呢?

2.1 不定参数

如上所述,在定义不定参数时,表示从该参数开始记录不定参数

2.2 解引用slice

当要传递若干个值到不定参数函数中得时候,可以手动书写每个参数,也可以将一个slice传递给该函数:

YourFunc (YourSlice...)
...

这里要注意的是,解引用slice目前只能在不定参数函数传递参数时使用,在其他地方使用会报错。

C、遍历参数

下面我们来看一个实例:

func P (v... string) {for _,item := range v {    fmt.Println("item:",item)    }}func main() {    var l []string    l = append(l,"a")    l = append(l,"b")    fmt.Println("l is ",l)    P(l...)}

这里我们看到的结果是,首先一个完整的list,然后是每个元素:

l is  [a b]item: aitem: b
for...range