typestar

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

  1. Los nombres documentan qué regresa.
  2. Un return a secas envía los valores actuales.
  3. Úsalos para el truco del defer, no para ahorrar tecleo.

Palabras clave y builtins usados aquí

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.

Escribe este fragmento

Paso 4 de 4 en defer, panic y recover; paso 13 de 15 en Errores.

← Anterior Siguiente →