Go con Ejemplos: Funciones Variadicas

Las Funciones Variádicas pueden ser llamadas con cualquier numero de argumentos. Un ejemplo común de una función variádica es fmt.Println.

package main
import "fmt"

Aquí declaramos una función que va a recibir un numero arbitrario de valores tipo int como argumentos.

func sum(nums ...int) {
    fmt.Print(nums, " ")
    total := 0
    for _, num := range nums {
        total += num
    }
    fmt.Println(total)
}
func main() {

Las funciones variádicas pueden ser llamadas de la misma manera con valores individuales.

    sum(1, 2)
    sum(1, 2, 3)

También puedes tener los argumentos en un slice y aplicarlos a la función variádica utilizando la forma func(slice...):

    nums := []int{1, 2, 3, 4}
    sum(nums...)
}
$ go run funciones-variadicas.go
[1 2] 3
[1 2 3] 6
[1 2 3 4] 10

Otro aspecto clave de las funciones en Go es su habilidad de generar closures, lo cual veremos a continuación.

Siguiente ejemplo: Closures.