如果我有一個函數,最後一個參數是可選的,那麼使用...
來允許參數是可選的,還是它被認爲是不好的形式,這是一個合適的做法嗎?可變參數是可選參數的適當解決方案嗎?
例子:
func Foo(s ...string) {
switch len(s) {
case 0:
fmt.Println("You didn't pass an argument")
case 1:
fallthrough
default:
fmt.Printf("You passed %s\n", s[0])
}
}
Foo("bar") // "You passed bar"
Foo() // "You didn't pass an argument"
Foo("bar", "baz") // "You passed bar"
在這個例子中,我不在乎太多的參數傳遞,但在需要的時候我能勝任,在default:
情況。
關於你的第一段,我看到你在說什麼,但在我的情況下,我沒有在尋找動態類型。它的類型將是靜態的,但它包含在調用中是可選的。但是你的第二段完全符合我的想法。我會讓問題在那裏突出一段時間,但現在+1。 –
你的回答和其他的都是很不錯的,但你具體處理的適當的編碼風格的問題,給標準庫作爲一個合適的標準。非常感謝。 –