In meinem lib.rs
wollte ich use std::fs::File
tun. HierWarum muss ich ein zusätzliches `::` Präfix verwenden, um auf eine importierte Struktur zuzugreifen?
ist der Beispielcode:
use std::fs::File;
use std::io::Read;
impl Css {
pub fn save_result_to_file(file_to_save: String) {
println!("Saving output to {}", file_to_save);
let mut f = File::open(file_to_save).expect("Unable to open file");
// let mut f = ::File::open(file_to_save).expect("Unable to open file"); -> Works
}
}
Ohne die Anwesenheit von ::
vor File
mir einen Compiler-Fehler bekommen:
| let mut f = File::open(file_to_save).expect("Unable to open file");
| ^^^^^^^^^^ Use of undeclared type or module `File`
Meine Frage ist - ist der ::
Präfix immer notwendig? Ich bin sicher, es ist nicht, aber ich kann nicht sehen, wie das geht.
kann nicht reproduzieren; Sie müssen 'std :: fs :: File;' in der * tatsächlichen * Datei verwenden, in der Sie 'File :: open' aufrufen. – ljedrz