我找到的现有答案都是基于from_str(比如Reading in user input from console once efficiently),但显然在Rust 1.0中from_str(x)变成了x.parse().作为一名新手,考虑到这一变化,不清楚应该如何调整原始解决方案.

从Rust 1.0开始,从用户那里获取整数输入的最简单方法是什么?

推荐答案

这是一个包含所有可选类型注释和错误处理的版本,对我这样的初学者可能很有用:

use std::io;

fn main() {
    let mut input_text = String::new();
    io::stdin()
        .read_line(&mut input_text)
        .expect("failed to read from stdin");

    let trimmed = input_text.trim();
    match trimmed.parse::<u32>() {
        Ok(i) => println!("your integer input: {}", i),
        Err(..) => println!("this was not an integer: {}", trimmed),
    };
}

Rust相关问答推荐

如何装箱生命周期相关联的两个对象?

rust 蚀生命周期 行为

带扫描的铁 rust 使用滤镜

具有对同一类型的另一个实例的可变引用的

Box::new()会从一个堆栈复制到另一个堆吗?

编译项目期间使用Cargo生成时出现rustc错误

用 rust 蚀中的future 展望 struct 的future

替换可变引用中的字符串会泄漏内存吗?

铁 rust 中的泛型:不能将`<;T作为添加>;::Output`除以`{Float}`

避免在Collect()上进行涡鱼类型的涂抹,以产生<;Vec<;_>;,_>;

如何go 除多余的(0..)在迭代中,当它不被使用时?

当发送方分配给静态时,Tokio MPSC关闭通道

为什么&;mut buf[0..buf.len()]会触发一个可变/不可变的borrow 错误?

根据填充系数以相对大小在给定空间中布局项目

考虑到Rust不允许多个可变引用,类似PyTorch的自动区分如何在Rust中工作?

详尽的匹配模式绑定

使用 Option 来分配?

部署Rust发布二进制文件的先决条件

特征中定义的类型与一般定义的类型之间的区别

如何在 Rust 的内置函数上实现特征?