Если у меня есть функция, в которой последний аргумент является необязательным, целесообразно ли использовать ...
, чтобы аргумент был необязательным, или это считается дурным тоном?
Пример:
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:
, когда это необходимо.