Rust: Wie kann ich die Variable path global nutzen?
pub fn openfile() {
let path = FileDialog::new()
.set_location("~/")
.show_open_single_file()
.unwrap();
let path = match path {
Some(path) => path,
None => return,
};
dbg!(path);
}
Ich möchte die Variable path von diesem Code-Snippet global nutzen, weiß aber nicht, wie. Dieses Snippet ist in gui.rs und ich möchte "path" in der main.rs nutzen.
1 Antwort
Um die Variable "path" aus dem gegebenen Code-Snippet in `gui.rs` global in der `main`-Funktion zu nutzen, kannst du sie aus der Funktion `openfile()` heraus extrahieren und als Rückgabewert zurückgeben. Hier ist eine mögliche Vorgehensweise:
1. Ändere die Signatur der Funktion `openfile()` so, dass sie einen `Option<String>` zurückgibt:
```rust
pub fn openfile() -> Option<String> {
// ... (der bestehende Code bleibt unverändert)
}
```
2. Führe eine lokale Variable in der `main`-Funktion ein, um den Rückgabewert von `openfile()` zu speichern:
```rust
fn main() {
// ...
let path = openfile();
// ...
}
```
Durch diese Änderung wird die Variable "path" in der `main`-Funktion zugänglich und du kannst sie dort weiterverwenden. Beachte, dass der Rückgabewert von `openfile()` jetzt ein `Option<String>` ist, da `path` möglicherweise `None` sein kann, wenn der Dateiauswahl-Dialog abgebrochen wird. Du kannst diese Option dann entsprechend behandeln, je nachdem, was für dein Programm sinnvoll ist.