typestar

Funciones variádicas en Go

El último parámetro puede aceptar cualquier número de argumentos, que llegan como slice.

func total(label string, values ...int) string {
    sum := 0
    for _, value := range values {
        sum += value
    }
    return fmt.Sprintf("%s=%d over %d values", label, sum, len(values))
}

func callers() []string {
    scores := []int{3, 2, 1}
    return []string{
        total("inline", 1, 2, 3),
        total("spread", scores...),
        total("empty"),
    }
}

Cómo funciona

  1. Dentro de la función es un slice común y corriente.
  2. slice... esparce un slice existente en la llamada.
  3. No pasar ninguno da un slice nil, que se recorre sin problema.

Palabras clave y builtins usados aquí

El intento, en números

Líneas
16
Caracteres a escribir
316
Tokens
95
Ritmo de tres estrellas
90 tpm

Al ritmo de tres estrellas de 90 tokens por minuto, este intento toma unos 63 segundos.

Escribe este fragmento

Paso 2 de 6 en Funciones; paso 11 de 30 en Fundamentos del lenguaje.

← Anterior Siguiente →