Zum Inhalt springen

If-Ausdrücke

Richtig/Falsch: Führen diese beiden Code-Abschnitte zum gleichen Wert für x?

Snippet 1:

let x = if cond { 1 } else { 2 };

Snippet 2:

let x;
if cond {
x = 1;
} else {
x = 2;
}

(Hinweis: Beide Snippets kompilieren!)

Der erste if-Ausdruck ist eine prägnantere Art, das Verhalten der zweiten if-Anweisung darzustellen.

Beachten Sie, dass Rust im zweiten Snippet nicht verlangt, dass x initial mit let mut deklariert wird. Dies liegt daran, dass Rust feststellen kann, dass x nur einmal zugewiesen wird, da nur ein Zweig der if-Anweisung ausgeführt wird.


fn main() {
let x = 1;
let y = if x { 0 } else { 1 };
println!("{y}");
}

Die Bedingung eines if-Ausdrucks muss ein Boolescher Wert sein. Rust kennt kein Konzept von „truthy“ oder „falsy“ Werten.