
fn check_grade(grade: i32) -> &'static str {
match grade {
90..=100 => "A",
80..=89 => "B",
70..=79 => "C",
60..=69 => "D",
0..=59 => "F",
_ => "Invalid grade",
}
}这个函数是用Rust编写的,名为check*grade。它接受一个i32类型的参数grade,代表一个成绩,然后返回一个&‘static str类型的字符串,表示对应的成绩等级。
函数内部使用了match表达式,这是Rust中一种强大的模式匹配机制。在match表达式中,程序会根据grade的值依次匹配每个分支,执行与匹配分支相对应的代码。
- 第一个分支 90..=100 ⇒ “A”,匹配了90到100的范围,将其对应的成绩等级设为”A”。
- 第二个分支 80..=89 ⇒ “B”,匹配了80到89的范围,将其对应的成绩等级设为”B”。
- 第三个分支 70..=79 ⇒ “C”,匹配了70到79的范围,将其对应的成绩等级设为”C”。
- 第四个分支 60..=69 ⇒ “D”,匹配了60到69的范围,将其对应的成绩等级设为”D”。
- 第五个分支 0..=59 ⇒ “F”,匹配了0到59的范围,将其对应的成绩等级设为”F”。
- 最后一个分支 * ⇒ “Invalid grade”,这是一个通配符分支,匹配了除了前面提到的范围之外的所有可能值,将其对应的成绩等级设为”Invalid grade”,表示无效的成绩。
这种写法利用了Rust的模式匹配和范围表达式,使得代码简洁明了,易于理解和维护。