1 回答

TA貢獻(xiàn)1995條經(jīng)驗(yàn) 獲得超2個(gè)贊
請(qǐng)注意,如果b
是 type []any
,您可以將其作為 的可變參數(shù)的值傳遞fmt.Println()
:
fmt.Println(b...)
但由于b
是 type []string
,你不能。
但是如果你變成b
一個(gè)[]any
切片,你可以。您可以使用此輔助函數(shù)來(lái)執(zhí)行此操作:
func convert[T any](x []T) []any {
r := make([]any, len(x))
for i, v := range x {
r[i] = v
}
return r
}
進(jìn)而:
func increaseArguments(b []string) {
fmt.Println(convert(b)...)
}
這將輸出(在Go Playground上嘗試):
this this2 this3
this this2 this3 this4
注意:在中創(chuàng)建新切片convert()不會(huì)使此解決方案變慢,因?yàn)轱@式傳遞值(如fmt.Println(b[0], b[1], b[2]))也會(huì)隱式創(chuàng)建切片。
- 1 回答
- 0 關(guān)注
- 206 瀏覽
添加回答
舉報(bào)