Avatar ·

Wie bekomme ich einen Verweis auf einen Wert innerhalb von Option<T> in Rust ohne Verschiebung?

Hallo Kollegen! Ich bin neu in Rust und habe ein Problem, das mir sehr seltsam erscheint. Ich habe eine Struktur, die ein Feld vom Typ `Option` enthält. Ich möchte eine Methode schreiben, die einen Verweis auf den String innerhalb dieser Option zurückgibt, falls vorhanden, oder so etwas wie `None`, falls nicht.\n\nHier ist mein Code:\n\n```rust\nstruct Person {\n name: Option,\n}\n\nimpl Person {\n fn get_name(&self) -> &str {\n // Wie bekomme ich hier einen Verweis auf den String innerhalb von Option?\n // self.name.unwrap() // Fehler: kann nicht aus einem geliehenen Kontext verschieben\n // &self.name.unwrap() // Funktioniert auch nicht\n }\n}\n```\n\nWenn ich versuche, `unwrap()` zu verwenden, sagt der Compiler, dass ich versuche, den Wert aus `self.name` zu verschieben, aber `self` ist nur per Referenz geliehen.