go語言可變引數的坑

2021-09-07 16:33:46 字數 458 閱讀 7144

對可變引數不了解的同學,可以先看這篇文章可變引數終極指南

不能通過空介面型別向可變引數傳遞乙個普通的切片,需要將普通切片轉換為空介面切片

可變引數不支援確定引數和slice解包的混合。

package main

func demo(args ...inte***ce{})

func main()

arg3 := inte***ce{}

demo(arg1)

demo(arg2)

demo(arg3)

demo(arg2...) //錯誤,型別不一致

demo(arg3...)

demo(arg1,arg3...) //錯誤,不支援混合定參+slice解包

}

據說go2將更改變參的規則,希望這兩個坑都被填掉,讓go用起來更方便。

Go語言 可變引數

最近與同事討論時,提到go語言的可變引數,之前沒有總結過相關知識點,今天我們介紹一下go語言的可變引數。可變引數 variable parameters 引數數量可變的函式稱之為可變引數函式,主要是在使用語法糖 syntactic sugar 最經典的例子就是fmt.printf 和類似的函式,fm...

go 可變引數

0個或多個引數 func add arg int int 1個或多個引數 func add a int,arg int int 2個或多個引數 func add a int,b int,arg int int 注意 其中arg是乙個slice,我們可以通過arg index 依次訪問所有引數,通過l...

go的可變引數

可變函式 條件 1 最後乙個引數使用.2 如果把可變引數放在引數前面會把所有的引數都作為可變引數,編譯也會報錯syntax error cannot use with non final parameter 3 可變引數需要用 range來迴圈 4 可變引數其實是個切片 slice 執行原理 1 首...