我是一个新手锈,并试图在两个数字阅读和计算它们的商:错误读取及计算商数
use std::io;
enum Option<T> {
None,
Some(T),
}
fn safe_div(n: i32, d: i32) -> Option<i32> {
if d == 0 {
return None;
}
return Some(n/d);
}
fn main() {
println!("Please input your numerator.");
let mut numerator = String::new();
io::stdin()
.read_line(&mut numerator)
.expect("Failed to read line");
println!("Please input your denominator.");
let mut denominator = String::new();
io::stdin()
.read_line(&mut denominator)
.expect("Failed to read line");
match safe_div(numerator, denominator) {
None => println!("Can't divide by zero!"),
Some(v) => println!("Quotient is {}", v),
}
}
,但我收到以下错误反复几次,当我尝试编译:
src/safe_div.rs:12:12: 12:21 error: mismatched types: expected
Option<i32>
, foundstd::option::Option<i32>
(expected enumOption
, found enumstd::option::Option
) [E0308]
我在这里错过了什么?
我试过这个修复和编译错误消失,但它给我的运行时错误,而不是:'线程''恐慌在'预期i32''和死而宁比打印商。 –
wogsland