在铁锈中使用火柴的更好方法



我正在尝试使用match和String来比较Rust中的值,而且我是Rust的初学者,所以idk-if有更好的方法或其他方法来做这件事,但是,到目前为止效果不好:

fn main() {
println!("Enter what type of calc u want: ");
let mut calc = String::new();
io::stdin().read_line(&mut calc).expect("Failed to read"); // reading input
println!("u selected: {}", calc); // this prints the input as well
let result = match calc.as_str() {
"sum" => sum(),
"subtraction" => subtraction(),
"division" => division(),
"multiplication" => multiplication(),
&_ => 0,
};
println!("{}", result); // always returning 0
}

sóresult是默认值,calc有它应该有的输入值,所以我知道它在match calc.as_str()

当您在stdin中输入sum时,您将得到sumn。因此,您可以进行以下更改:

let result = match calc.as_str() {
"sumn" => sum(),
"subtractionn" => subtraction(),
"divisionn" => division(),
"multiplicationn" => multiplication(),
_ => 0,
};

let result = match calc.trim() {
"sum" => sum(),
"subtraction" => subtraction(),
"division" => division(),
"multiplication" => multiplication(),
_ => 0,
};

最新更新