Exercices Rust
Temperature Converter in Rust
Convert between Celsius and Fahrenheit with an enum that remembers the unit.
Ce que vous allez apprendre
- An enum with data
- match to convert
- Formatting with {:.1}
convert
100.0°C212.0°F98.6°F37.0°C-40.0°C-40.0°FThe unit is part of the value
An enum can record which unit a temperature uses, so the compiler stops you from mixing Celsius and Fahrenheit by accident.
convert matches on the variant and returns the other one. show formats the number with one digit after the decimal point. -40 is the one temperature that is the same on both scales.
Points clés
- Each variant carries the number.
- match returns the other unit.
- -40 is the same on both scales.
Exemple Rust exécutable
main.rs
enum Temperature {
Celsius(f64),
Fahrenheit(f64),
}
fn convert(temperature: &Temperature) -> Temperature {
match temperature {
Temperature::Celsius(c) => Temperature::Fahrenheit(c * 9.0 / 5.0 + 32.0),
Temperature::Fahrenheit(f) => Temperature::Celsius((f - 32.0) * 5.0 / 9.0),
}
}
fn show(temperature: &Temperature) -> String {
match temperature {
Temperature::Celsius(c) => format!("{c:.1}°C"),
Temperature::Fahrenheit(f) => format!("{f:.1}°F"),
}
}
fn main() {
for input in [Temperature::Celsius(100.0), Temperature::Fahrenheit(98.6), Temperature::Celsius(-40.0)] {
println!("{} = {}", show(&input), show(&convert(&input)));
}
}
100.0°C = 212.0°F
98.6°F = 37.0°C
-40.0°C = -40.0°FS'entraîner
Ouvrez l'exemple dans le compilateur en ligne, modifiez une valeur ou ajoutez une ligne, et devinez la sortie avant de l'exécuter. Cassez ensuite le code exprès et lisez le message du compilateur.
Leçon terminée ?
Marquez-la comme apprise pour suivre votre progression.
Votre progression est enregistrée dans ce navigateur Connectez-vous pour la garder sur tous vos appareils.
S'entraîner avec un défi
Utilisez le contenu de cette leçon pour résoudre un vrai problème. Chaque défi s'exécute dans le navigateur, avec des tests instantanés et une revue par l'IA.
Tous les défis