代码之家  ›  专栏  ›  技术社区  ›  Tobias Langner

在拆分字符串上使用映射时无法推断类型

  •  0
  • Tobias Langner  · 技术社区  · 5 年前

    我现在正试图通过编写代码来学习生锈。我有一个包含整数的文件作为输入(每行一个)。我现在尝试使用以下代码解析该文件:

    use std::fs::File;
    use std::io::prelude::*;
    
    fn main() -> std::io::Result<()> {
        let mut file = File::open("./input/day1_input.txt")?;
        let mut contents = String::new();
        file.read_to_string(&mut contents)?;
        let split = contents.split("\n").map(|x| x.parse().unwrap());
        for x in split {
            println!("{}",x);
        }
        Ok(())
    }
    

    0 回复  |  直到 5 年前
        1
  •  1
  •   Alexey S. Larionov    5 年前

    编译器不知道您正在解析哪个特定的数字类型。尝试 parse::<u32>()

    作为一个文件阅读的建议,当心大文件,因为你阅读整个文件在一个单一的 String 字符串 File 在一个 BufReader 这样您就可以请求部分内容,而不用担心进行许多非常昂贵的操作系统调用。然后你以可控的大小读取内容,比如几行或几兆字节的块。

    推荐文章