Не Golang поддержка функции с переменным числом аргументов?


интересно, есть ли в любом случае, что я могу определить функцию для неизвестного числа переменных в Go.

что-то вроде этого

 func Add(num1... int) int {
    return args
  }

  func main() {
        fmt.Println("Hello, playground")
        fmt.Println(Add(1, 3, 4, 5,))
  }

Я хочу обобщить функцию add для любого количества входов.

2 52

2 ответа:

вы в значительной степени получили его, из того, что я могу сказать, но синтаксис ...int. Смотрите спец:

учитывая функцию и вызов

func Greeting(prefix string, who ...string)
Greeting("hello:", "Joe", "Anna", "Eileen")

в приветствие, who будет иметь значение []string{"Joe", "Anna", "Eileen"}

при использовании параметров variadic вам нужно использовать loop в типе данных внутри вашей функции.

func Add(nums... int) int {
    total := 0
    for _, v := range nums {
        total += v
    }
    return total  
}

func main() {
    fmt.Println("Hello, playground")
    fmt.Println(Add(1, 3, 4, 5,))
}