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
- Cada llamada va seguida de su chequeo, así nada se ignora.
- Envolver en cada nivel dice dónde falló.
- Por eso el código Go tiene tan pocas ramas else.
Palabras clave y builtins usados aquí
errorfuncifintlenreturnstring
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.
Paso 3 de 3 en El error como valor; paso 3 de 15 en Errores.