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
- Dentro de la función es un slice común y corriente.
slice...esparce un slice existente en la llamada.- No pasar ninguno da un slice nil, que se recorre sin problema.
Palabras clave y builtins usados aquí
forfuncintlenrangereturnstring
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.
Paso 2 de 6 en Funciones; paso 11 de 30 en Fundamentos del lenguaje.