Was bedeutet der Fragezeichen-Operator (?) in Rust und wie funktioniert er?
Hallo zusammen! Ich habe vor kurzem angefangen, Rust zu lernen, und bin auf einen seltsamen Operator gestoßen – das Fragezeichen (?). Ich habe ihn in fremdem Code gesehen, kann aber nicht verstehen, was er macht.\n\nHier ist ein Beispiel, das ich gefunden habe:\n\n```rust\nuse std::fs::File;\nuse std::io::Read;\n\nfn read_file(path: &str) -> Result {\n let mut file = File::open(path)?; // Was macht `?` hier?\n let mut contents = String::new();\n file.read_to_string(&mut contents)?; // Und hier?\n Ok(contents)\n}\n```\n\nIch habe versucht, ähnlichen Code ohne diesen Operator zu schreiben, indem ich `match` verwendet habe, und es wurde sehr umständlich:\n\n```rust\nfn read_file_verbose(path: &str) -> Result {\n let mut file = match File::open(path) {\n Ok(f) => f,\n Err(e) => return Err(e),\n };\n let mut