ich den Code gefolgt, eine Datei von Rust by Example zu öffnen:Datei kann nicht Inhalt Zeichenfolge lesen - Ergebnis keine Methode in Umfang namens nicht implementiert `read_to_string`
use std::env;
use std::io::BufRead;
use std::fs::File;
use std::path::Path;
fn main() {
let args: Vec<_> = env::args().collect();
let pattern = &args[1];
if let Some(a) = env::args().nth(2) {
let path = Path::new(&a);
let mut file = File::open(&path);
let mut s = String::new();
file.read_to_string(&mut s);
println!("{:?}", s);
} else {
//do something
}
}
Aber ich habe eine Nachricht wie folgt aus:
error: no method named `read_to_string` found for type `std::result::Result<std::fs::File, std::io::Error>` in the current scope
--> src/main.rs:14:14
|
14 | file.read_to_string(&mut s);
| ^^^^^^^^^^^^^^
Was mache ich falsch?
https://doc.rust-lang.org/std/fs/struct.File.html: hier tut es sagen, dass Datei eine read_to_string Methode hat. Warum kann ich hier nicht darauf zugreifen, wie es der erste Beispielcode getan hat? – user3918985
@ user3918985 'Datei' implementiert' Read', was 'read_to_string' liefert. Ich verstehe nicht, was du mit "hier" meinst. Sie müssen dieses Merkmal (wie ich zeige) verwenden, um diese Methoden im Geltungsbereich zu haben. – Shepmaster
Vielen Dank für Ihre sehr ausführliche Erklärung. – liuyanghejerry