Все вопросы

19 Функции

Как принять произвольное число аргументов?

Последний параметр вида nums ...int собирает аргументы в срез. Внутри функции это обычный []int, возможно пустой. Готовый срез передают наружу с тем же многоточием: sum(nums...).

Пример

Go

sum от списка и от среза

package main

import "fmt"

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

func main() {
    fmt.Println(sum(1, 2, 3))
    nums := []int{4, 5}
    fmt.Println(sum(nums...))
}