typestar

El retorno temprano en Go

Atiende el error y retorna; el camino feliz queda a una sola sangría.

func parseRun(fields []string) (string, int, error) {
    if len(fields) != 2 {
        return "", 0, fmt.Errorf("want 2 fields, got %d", len(fields))
    }

    lang := strings.TrimSpace(fields[0])
    if lang == "" {
        return "", 0, errors.New("language is empty")
    }

    tpm, err := strconv.Atoi(strings.TrimSpace(fields[1]))
    if err != nil {
        return "", 0, fmt.Errorf("parse tpm: %w", err)
    }

    return lang, tpm, nil
}

Cómo funciona

  1. Cada llamada va seguida de su chequeo, así nada se ignora.
  2. Envolver en cada nivel dice dónde falló.
  3. Por eso el código Go tiene tan pocas ramas else.

Palabras clave y builtins usados aquí

El intento, en números

Líneas
17
Caracteres a escribir
388
Tokens
113
Ritmo de tres estrellas
95 tpm

Al ritmo de tres estrellas de 95 tokens por minuto, este intento toma unos 71 segundos.

Escribe este fragmento

Paso 3 de 3 en El error como valor; paso 3 de 15 en Errores.

← Anterior Siguiente →