Rust-Übungen

Temperature Converter in Rust

Convert between Celsius and Fahrenheit with an enum that remembers the unit.

  • Einsteiger
  • 3 Min. Lesezeit
  • 1 ausführbares Beispiel
Das lernst du
  • An enum with data
  • match to convert
  • Formatting with {:.1}
convert
100.0°C212.0°F
98.6°F37.0°C
-40.0°C-40.0°F

The 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.

Das Wichtigste

  1. Each variant carries the number.
  2. match returns the other unit.
  3. -40 is the same on both scales.

Ausführbares Rust-Beispiel

Rust
Code ausführen →
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)));
    }
}
Run-Button für dieses Beispiel erstellen Ergebnis der Ausführung
100.0°C = 212.0°F
98.6°F = 37.0°C
-40.0°C = -40.0°F

Üben

Öffne das Beispiel im Online-Compiler, ändere einen Wert oder füge eine Zeile hinzu und sage die Ausgabe voraus, bevor du es ausführst. Bring den Code danach absichtlich zum Scheitern und lies die Meldung des Compilers.

Lektion fertig?

Markiere sie als gelernt, um deinen Fortschritt zu verfolgen.

Mit einer Challenge üben

Nutze den Inhalt dieser Lektion, um ein echtes Problem zu lösen. Jede Challenge läuft im Browser, mit sofortigen Tests und einem KI-Review.

Alle Challenges