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