如果您查看
文件不可变,但数据肯定被读入了。这让我感到不正确。有人指出存在一个
Read
的文档, 大多数方法都接受一个&mut self
. 这很有道理,因为从某个地方读取通常会更新内部偏移量,以便下一次读取返回不同的数据。但是,以下内容可以编译:use std::io::Read;
use std::fs::File;
fn main() {
let file = File::open("/etc/hosts").unwrap();
let vec = &mut Vec::new();
(&file).read_to_end(vec).unwrap();
println!("{:?}", vec);
}
文件不可变,但数据肯定被读入了。这让我感到不正确。有人指出存在一个
impl<'a> Read for &'a File
, 但似乎仍在改变不可变实例的事实仍然很奇怪。
&file
就足够了?人们应该期望需要&mut file
。 - mdupread_to_end
应该适用于&mut File
或&mut &File
,但(&file)
都不是。 - fjha.read_to_end(vec)
会调用Read::read_to_end(&mut a, vec)
,也就是说该方法已经看到了&mut &file
。 - kennytmRead
都很好奇,因此我已经调整了问题。 - Shepmaster