我发现的所有答案都是基于from_str
(如Reading in user input from console once efficiently),但显然from_str(x)
在锈蚀1中已变成x.parse()
。作为一个新手,考虑到这一变化,最初的解决方案应该如何调整并不明显。
从Rust1.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),
};
}