0Pricing
Go Academy · Lección

Funciones variádicas

Aceptación de un número variable de argumentos

Funciones variádicas es una lección gratuita de Go Academy en CoddyKit. Esta es la lección 3 de 4. Puedes leer la lección completa abajo gratuitamente — luego la practicas en el navegador con un editor de código integrado y un tutor de IA 24/7. Forma parte de la ruta de aprendizaje de Go Academy, y tu progreso se sincroniza en la web y la app de CoddyKit. El curso de Go Academy incluye 4 lecciones en total.

¿Qué es una función variádica?

Una función variádica acepta cero o más argumentos de un tipo especificado, que se recopilan en un slice:

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

fmt.Println(sum(1, 2, 3, 4)) // 10

La sintaxis ...T

Utilice ...T como tipo del último parámetro. Dentro de la función, es un []T:

  • Puede llamarse con cero o más argumentos
  • El parámetro variádico debe ser el último
  • Solo se permite un parámetro variádico por función

Expandir un slice

Pase un slice existente a una función variádica utilizando el operador de expansión ...:

nums := []int{1, 2, 3, 4, 5}
total := sum(nums...)  // spread the slice
fmt.Println(total)     // 15

fmt.Println es variádico

Muchas funciones de la biblioteca estándar son variádicas. fmt.Println tiene la firma func Println(a ...interface{}) (n int, err error): acepta cualquier cantidad de valores de cualquier tipo.

append es variádico

La función integrada append es variádica:

a := []int{1, 2, 3}
b := []int{4, 5, 6}
a = append(a, b...)   // append all of b into a
fmt.Println(a)         // [1 2 3 4 5 6]

Variádicos con otros parámetros

Los parámetros variádicos van al final. Combine parámetros fijos y variádicos:

func logf(level string, msg string, args ...interface{}) {
    fmt.Printf("[%s] "+msg+"\n", append([]interface{}{level}, args...)...)
}

Llamada variádica vacía

Una función variádica puede llamarse sin argumentos; el slice será nil (o estará vacío):

fmt.Println(sum())   // 0 — nil slice, loop runs 0 times

Parámetro variádico frente a parámetro slice

Cuándo utilizar un parámetro variádico o un parámetro slice:

  • Variádico: cuando los llamadores proporcionan valores individuales directamente (por ejemplo, sum(1,2,3))
  • Slice: cuando los llamadores siempre tienen una colección creada previamente
  • El variádico resulta más cómodo en los puntos de llamada; internamente, ambos funcionan igual de bien

Pasar un variádico a otro variádico

Reenvíe los argumentos variádicos mediante la expansión:

func logError(args ...interface{}) {
    log.Println(args...) // forward to log.Println
}

Crear patrones de opciones

...Option variádico es un patrón popular para la configuración opcional (opciones funcionales):

type Option func(*Server)

func NewServer(addr string, opts ...Option) *Server {
    s := &Server{addr: addr}
    for _, o := range opts {
        o(s)
    }
    return s
}

Comprobación rápida

¿Cómo se pasa un slice a una función variádica?

Resumen: funciones variádicas

Las funciones variádicas mantienen limpios los puntos de llamada:

  • ...T recopila los argumentos finales en un []T dentro de la función
  • Llame a la función con valores individuales o expanda un slice con slice...
  • Las funciones integradas como append y fmt.Println son variádicas
  • Solo se permite un parámetro variádico y debe ser el último
  • Utilice el patrón de opciones funcionales para diseñar API expresivas

A continuación: defer, funciones anónimas y cierres.

Preguntas frecuentes

¿La lección «Funciones variádicas» es gratis?

Sí — el texto completo de «Funciones variádicas» es gratis para leer aquí en la web. Para practicarla de forma interactiva (editor de código integrado y tutor de IA 24/7) y desbloquear el resto del curso de Go Academy, actualiza a CoddyKit PRO. El curso de Go Academy incluye 4 lecciones en total.

¿Qué aprenderé en «Funciones variádicas»?

Aceptación de un número variable de argumentos Practicas Go Academy con código real que ejecutas directamente en el navegador, y un tutor de IA 24/7 responde tus preguntas mientras trabajas en la lección.

¿Necesito experiencia previa para empezar Go Academy?

No se requiere experiencia previa. Go Academy en CoddyKit está estructurado para principiantes hasta estudiantes avanzados, así que puedes empezar aquí o desde el inicio y avanzar a tu ritmo. Esta es la lección 3 de 4.

¿Cuánto tiempo toma la lección «Funciones variádicas»?

La mayoría de las lecciones de CoddyKit toman alrededor de 5–10 minutos. Cada una es compacta e interactiva, así que avanzas constantemente y retomas exactamente por donde dejaste en la web y la app.

¿Puedo escribir y ejecutar código en esta lección de Go Academy?

Sí. Cada lección de Go Academy incluye un editor de código integrado, así que escribes y ejecutas código real directamente en tu navegador y obtienes retroalimentación instantánea de IA — sin configuración local necesaria.

Todas las lecciones de este curso

  1. Fundamentos y firmas de funciones
  2. Múltiples valores de retorno
  3. Funciones variádicas
  4. defer, funciones anónimas y cierres
← Volver a Go Academy