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

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

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

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

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

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

62
задан 24 July 2016 в 22:26

2 ответа

Golang имеют очень простое объявление

функции variadic, функции Variadic могут быть вызваны с любым количеством запаздывающих аргументов. Например, fmt. Println является общей функцией variadic.

Here’s функция, которая возьмет произвольное число ints как аргументы.

package main

import (
    "fmt"
)

func sum(nums ...int) {
    fmt.Println(nums)
    for _, num := range nums {
        fmt.Print(num)
    }
}

func main() {
    sum(1, 2, 3, 4, 5, 6)
}

Вывод вышеупомянутой программы:

[1 2 3 4 5 6]

1 2 3 4 5 6

1
ответ дан 31 October 2019 в 14:09

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

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,))
}
6
ответ дан 31 October 2019 в 14:09

Другие вопросы по тегам:

Похожие вопросы: