如何将BufReader传递给rust中的另一个函数?

问题描述 投票:0回答:1

刚起步,我希望这是希望能更好地理解这种语言。

这里,我尝试读取文件,将文件句柄传递给其他函数,然后从那里打印行:

use std::fs::File;
use std::io::{self, BufReader};
use std::io::BufRead;
use async_std::task;

async fn scrape<R: BufRead>(reader: &mut R) {
    reader.lines().for_each(|line| println!(line));
}

fn main() -> io::Result<()> {
    let file = File::open("wlist.txt")?;
    let reader = BufReader::new(file);

    // print_type_of(&reader); // prints std::io::buffered::BufReader<std::fs::File>
    task::block_on(scrape(&mut reader));

    Ok(())
}

// helper functions
fn print_type_of<T>(_: &T) {
    println!("{}", std::any::type_name::<T>())
}

[我很想知道我缺少哪些概念以及应该如何正确完成这些工作!

rust
1个回答
0
投票

此版本至少可以编译,但是playground中没有异步,因此我不能添加异步。

© www.soinside.com 2019 - 2024. All rights reserved.