相关疑难解决方法(0)

为什么可以对File的不可变引用实现Read?

如果您查看文档Read,大多数方法都接受a &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);
}
Run Code Online (Sandbox Code Playgroud)

该文件不可变,但数据肯定被读入.这对我来说似乎不对.有人指出,有一个impl<'a> Read for &'a File,但事实上,一个看似不变的不可变实例似乎仍然很奇怪.

immutability rust

8
推荐指数
1
解决办法
560
查看次数

标签 统计

immutability ×1

rust ×1