在这段代码中,我将变量max
声明为mut
,但ruust-analyer告诉我这不是必需的.我移除了mut
,代码仍然工作并运行.为什么会这样呢?我在Match语句中重新赋值为max
.
fn validate_in_range_u32(value:u32, min:u32, max:u32) -> bool {
if value < min || value > max {
return false;
}
true
}
fn main() {
let day = 24;
let month = 8;
if !validate_in_range_u32(month, 1, 12) {
println!("Month is out of range (1-12)");
}
let max: u32;
match month {
1 | 3 | 5 | 7 | 8 | 10 | 12 => max = 31,
2 => max = 28,
4 | 6 | 9 | 11 => max = 30,
_ => panic!("Should not happen"),
}
if !validate_in_range_u32(day, 1, max) {
println!("Day is out of range (1-{max})");
}
println!("It worked!");
}