在阅读了std::io::BufReader
个文档之后,我不确定如何最好地在函数之间传递BufReader
.允许多重排列,但哪一种最好?
我有一个函数可以接收一个文件:
use std::{fs::File, io::BufReader};
fn read_some_data(f: &mut std::fs::File) {
let mut reader = BufReader::new(f);
read_some_other_data(&mut reader);
}
虽然这可以实现,但在将读者传递给其他功能时,应该使用哪种引用访问排列?
&mut BufReader<&mut File>
BufReader<&mut File>
&mut BufReader<File>
BufReader<File>
因 for each 函数都不需要拥有数据,所以我认为最好传递为&mut BufReader<&mut File>
,但文档中的示例使用<File>
.
什么是好的经验法则?
虽然这个例子使用BufReader
,但我认为同样的答案也适用于BufWriter
.