Conversiones en Go
Go convierte de forma explícita: nunca hay promoción implícita.
type Celsius float64
func conversions(text string) (int, string, Celsius, error) {
big := 300
asByte := byte(big % 256) // explícita, y da la vuelta
parsed, err := strconv.Atoi(text)
if err != nil {
return 0, "", 0, fmt.Errorf("parse %q: %w", text, err)
}
formatted := strconv.FormatFloat(1.5, 'f', 2, 64)
temperature := Celsius(float64(parsed))
return int(asByte) + parsed, formatted, temperature, nil
}
Cómo funciona
- Una conversión numérica puede truncar en silencio, así que acótala antes.
strconvconvierte entre cadenas y números, con un error.- Un tipo con nombre exige conversión aun cuando el tipo subyacente coincide.
Palabras clave y builtins usados aquí
byteerrorfloat64funcifintreturnstringtype
El intento, en números
- Líneas
- 16
- Caracteres a escribir
- 408
- Tokens
- 101
- Ritmo de tres estrellas
- 80 tpm
Al ritmo de tres estrellas de 80 tokens por minuto, este intento toma unos 76 segundos.
Paso 4 de 5 en Variables y tipos; paso 4 de 30 en Fundamentos del lenguaje.