Go 可变参数函数
若是一个函数最后一个参数被标记为…T
,表示函数能够接受一个可变的参数。code
好比,咱们想在nums中查找num是否存在:for循环
func find(num int, nums …int){ }
目的是经过find函数,在nums中查找num。原理
好比:循环
find(89,89,90,91)
会返回true。遍历
可变参数函数的原理是把可变参数转换成一个新的切片。语法
上面例子中,就能够变成for循环遍历nums切片,查找num。co
若是可变参数没有传,则nums变成了一个长度为0的nil切片。参数
既然咱们知道了可变参数会被转换成切片,那么经过go语法糖,能够将一个存在的分配看成可变参数的参数。
经过在切片后加上…后缀完成,这样传入一个切片后,切片将不会再进行建立新分片的操做。
nums := []int{89,90,95} find(89, nums…)