有没有可能;“部分应用”;go中的可变函数?

有没有可能;“部分应用”;go中的可变函数?,go,variadic-functions,Go,Variadic Functions,给定一个声明为 func foo(bars ...string) { // ... } 我想这样称呼它: bar1 := "whiskey bar" rest := []string{"vodka bar", "wine bar"} foo(bar1, rest...) 但这并没有编译;此消息的最后一行错误: have (string, []string...) want (...[]string) 有没有一种方法可以声明一个可变函数,这样就可以使用零个或多个参数值以及零个或一个值

给定一个声明为

func foo(bars ...string) {
    // ...
}
我想这样称呼它:

bar1 := "whiskey bar"
rest := []string{"vodka bar", "wine bar"}
foo(bar1, rest...)
但这并没有编译;此消息的最后一行错误:

have (string, []string...)
want (...[]string)

有没有一种方法可以声明一个可变函数,这样就可以使用零个或多个参数值以及零个或一个值数组(在末尾)调用它?

您必须将签名更改为
func foo(一些字符串、条……字符串)
,如中所述。操场上的更多信息:

不幸的是,没有一种方法可以同时满足你的两个条件,我认为你能做的最好的事情是这样:
foo(append([]string{bar1},rest…)
。也看看这个。也相关: