Structs, Enums und Traits
Rust Option: Some and None
Rust has no null. A value that may be missing is an Option, and the compiler makes you handle None.
Das lernst du
- Some(value) and None
- match and unwrap_or
- map on an Option
find_user(id)
Some
- id 1 → Some("Ada")
- use the name
None
- id 3 → None
- handle the missing case
A value that may be missing
Rust has no null. A value that may be missing has the type Option<T>, which is either Some(value) or None. The compiler makes you handle the None case before you can use the value.
find_user returns Some for a known id and None otherwise, and match handles both. unwrap_or supplies a default when the value is missing. map changes the value inside Some and leaves None alone.
Das Wichtigste
- Option<T> is
Some(value)or None. unwrap_orgives a default.- map changes the value inside Some.
Ausführbares Rust-Beispiel
Rust
main.rs
fn find_user(id: u32) -> Option<&'static str> {
match id {
1 => Some("Ada"),
2 => Some("Linus"),
_ => None,
}
}
fn main() {
for id in [1, 3] {
match find_user(id) {
Some(name) => println!("user {id}: {name}"),
None => println!("user {id}: not found"),
}
}
let name = find_user(9).unwrap_or("guest");
println!("{name}");
let length = find_user(2).map(|name| name.len());
println!("{:?}", length);
}
user 1: Ada
user 3: not found
guest
Some(5)Ü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.
Dein Fortschritt ist in diesem Browser gespeichert Melde dich an, um ihn auf jedem Gerät zu behalten.
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.
- Erstes eindeutiges Zeichen Finde das erste Zeichen, das nur einmal vorkommt. Einfach
- Zweitgrößter Wert Finde den zweitgrößten eindeutigen Wert. Einfach