第九回:圣旨到,Rust 函数
函数就是打包好的一套动作。你需要的时候,喊一声它的名字,它就会照做。在 Rust 里,用 fn 来定义函数。
1. 定义函数 (拟旨)
使用 snake_case (蛇形命名法),全小写,下划线连接。
fn main() {
println!("升堂!");
torture(); // 调用函数
}
fn torture() {
println!("上夹棍!");
}
2. 函数参数 (接旨)
函数可以接收参数,就像圣旨里指定要打谁。
fn main() {
hit_person("常威", 50);
hit_person("来福", 20);
}
// 必须声明参数类型!
fn hit_person(name: &str, count: u32) {
println!("把 {} 拖出去打 {} 大板!", name, count);
}
3. 返回值 (复旨)
函数执行完,可以给个交代(返回值)。在箭头 -> 后面声明返回类型。
注意: Rust 里最后的表达式不需要分号 ;,加上分号就变成语句了(没有返回值)。
fn main() {
let silver = bribe_amount();
println!("收了 {} 两银子", silver);
}
fn bribe_amount() -> i32 {
10000 // 注意:这里没有分号!这是返回值
// 如果写成 10000; 就变成了 (),会报错
}
我写了 return 10000; 也是可以的吧?
可以是可以,但那是脱裤子放屁!Rust 讲究简洁,最后一行直接写值就行!
动手时刻:判刑
写一个函数 sentence,接收一个罪名(字符串),返回刑期(整数)。
如果是 "打人",返回 1 年;如果是 "杀人",返回 10 年。
fn main() {
let years = sentence("杀人");
println!("判刑:{} 年", years);
}
fn sentence(crime: &str) -> i32 {
// 你的代码
}
查看判决书
fn sentence(crime: &str) -> i32 {
if crime == "杀人" {
10
} else {
1
}
}