这是我遇到的问题的一个例子:
package main
import "fmt"
func foo(a int, b ...int) {
fmt.Println(a,b)
}
func main() {
a := 0
aa := 1
b := []int{2,3,4}
foo(a, aa, b...)
}
当我运行它时,我得到了错误too many arguments in call to foo
。我想我可以理解为什么会发生这种情况,但我不清楚的是如何绕过它而不必b
在开头复制一个额外的插槽aa
(我不想这样做,因为这段代码会经常运行并且b
有点长)。
所以我的问题是:我做错了吗?如果不是,那么做我想做的事情的最有效方法是什么?
(另外,我无法更改 的签名foo
)。