Go: Pass a slice to a variadic function

You can pass a slice s directly to a variadic funtion using the s... notation.

func main() {
        primes := []int{2, 3, 5, 7}
        fmt.Println(Sum(primes...)) // 17
}       

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

The ... syntax can't be applied directly to an array. You must use an intermediate slice:

fmt.Println(Sum(myArray[:]...))

Comments

Be the first to comment!