1.8 KiB
1.8 KiB
title, categories, tags, draft, slug, date
title | categories | tags | draft | slug | date | ||
---|---|---|---|---|---|---|---|
给 Golang 开发者的 Rust 私房菜 04 函数、表达式和语句 |
|
|
false | rust-tutorial-04 | 2025-01-05T22:45:00+0800 |
Bilibili
{{< bilibili BV1TVrTYCESM >}}
建议前往 B 站观看哦!
函数
定义与调用
-
使用
fn
关键字定义函数。 -
参数需要显式声明类型。
fn add(a: i32, b: i32) -> i32 {
a + b
}
fn main() {
let result = add(2, 3);
println!("Result: {}", result);
}
返回值
函数的返回值是最后一个表达式的值,无需显式 return
。
// 使用 return
fn square(x: i32) -> i32 {
return x * x;
}
// 无需显式 return
fn square(x: i32) -> i32 {
x * x // 结尾没有分号
}
使用空元组 ()
表示函数无返回值。
fn greet() {
println!("Hello, Rust!");
}
fn greet() {
println!("Hello, Rust!") // 无分号,返回值是 `()`
}
表达式和语句
- 表达式会返回一个值,例如
a + b
或数字42
。 - 语句不返回值,例如变量声明
let x = 5;
。 - 函数中的最后一行是表达式,因此不需要
return
。
fn calculate(x: i32) -> i32 {
let doubled = x * 2; // 语句,定义变量
doubled + 1 // 表达式,最终返回值是 (x * 2) + 1
}
- Rust 中的代码块
{}
是一个表达式,其返回值为块中最后一个表达式的值。
fn main() {
let result = {
let a = 10;
let b = 20;
a + b // 块的返回值
};
println!("Result: {}", result); // 输出 30
}
实践建议
- 尽量利用表达式简化函数逻辑,减少显式
return
。 - 使用代码块返回值时,保持代码可读性,避免嵌套过深。