Resultados con nombre en Go
Nombrar los resultados deja que una función diferida los edite a la salida.
func withTiming(work func() error) (elapsed time.Duration, err error) {
started := time.Now()
defer func() {
elapsed = time.Since(started)
if err != nil {
err = fmt.Errorf("after %s: %w", elapsed.Round(time.Millisecond),
err)
}
}()
err = work()
return
}
Cómo funciona
- Los nombres documentan qué regresa.
- Un
returna secas envía los valores actuales. - Úsalos para el truco del defer, no para ahorrar tecleo.
Palabras clave y builtins usados aquí
defererrorfuncifreturn
El intento, en números
- Líneas
- 13
- Caracteres a escribir
- 254
- Tokens
- 74
- Ritmo de tres estrellas
- 105 tpm
Al ritmo de tres estrellas de 105 tokens por minuto, este intento toma unos 42 segundos.
Paso 4 de 4 en defer, panic y recover; paso 13 de 15 en Errores.