我在新版书上继续学习Rust,我正在经历一个“猜数字”中的游戏创作
有这段代码:
let guess: u32 = match guess.trim().parse() {
Ok(num) => num,
Err(_) => {
println!("Enter a number, please.");
continue;
}
};
如果输入的不是数字,请继续。
exit 如果您输入程序将结束,如何添加与带有条件的字符串的比较?
在不同版本的 Rust 中,对字符串数据的处理match是不同的,现在的版本是什么?
链接
要检查“退出”,我建议在之前插入一个条件:
.trim()空白字符必须提前完成,否则当你输入“exit”时我们也会收到一个换行符——“exit\n”。(这里是完整版本以防万一,但它不会在 play.rust-lang.org 上运行,因为它不支持来自标准输入的输入。)
如果你真的想要通过模式匹配,而不仅仅是比较,那么你可以将 if-branch 替换为:
或缩短的 iflet 版本:
我唯一记得的就是在 1.26 中引入了简化比较,但这不仅仅是关于字符串,也没有关闭旧的语义。那些。不是 Rust 1.0 的东西在这里被破坏了。