Вот пример проблемы, с которой я сталкиваюсь:
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
).