rust - 在Rust中将字符串与字符串文字匹配

标签 rust

我正在学习Rust,并且一直停留在这段与字符串和一些文字匹配的代码上一段时间。

while done_setup == false {
        println!("Enter difficultly mode you wish to play (Easy/Medium/Hard):");
        let mut difficulty = String::new();
        io::stdin()
            .read_line(&mut difficulty)
            .expect("Invalid input, aborting");
        match difficulty.as_str() {
            "Easy" => {num_guesses = 10;},
            "Medium" => {num_guesses = 7;},
            "Hard" => {num_guesses = 3;},
            _ => {
                println!("Pls enter a valid difficulty mode!");
                continue;
            },
        }
        println!("You are playing in {} mode, you have {} tries!", difficulty, num_guesses);
        done_setup = true;
    }

显然,该模式永远不会与“轻松”,“中等”或“困难”匹配,因为用户输入始终流向默认情况。我读过类似的SO问题,并且我了解String对象与文字(str)不同,但是difficulty.as_str()不应该解决这个问题吗?

我正在寻找一种干净且“正确”的方式对此进行编码,欢迎任何建议并在此先感谢!

最佳答案

结果可能包含尾随换行符。

trim 可用于剥离前导和尾随空格。

关于rust - 在Rust中将字符串与字符串文字匹配,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61433924/

相关文章:

rust - 如何用一个非零值初始化数组

datetime - 如何将 chrono::Datetime 舍入到最接近的秒数?

path - 从 Rust 中的给定路径中惯用地提取文件扩展名

Rust Cargo init 发生签名验证失败

rust - 使用 Trait 作为 Vec 类型

syntax - 为什么 trait bound 出现在 where 子句中而不出现在函数签名中?

rust - 如何在二进制项目中使用 src 文件夹外部的模块,例如用于集成测试或基准测试?

rust - 宏匹配 token 递归扩展

python-3.x - 在 pyenv 中将 matplotrust 与 python3 解释器一起使用

rust - 通用特征边界方法与 'direct' 特征方法的区别