Подтвердить что ты не робот

Поддерживает ли Golang вариационную функцию?

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

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

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

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

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

4b9b3361

Ответ 1

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

С учетом функции и вызова

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

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

Ответ 2

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

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,))
}