我正在学习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/