Golang可变参数

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…)