函数与控制流
学习定义函数,并使用 `if`/`else`、`loop`、`while` 和 `for` 表达式控制程序执行流程。
函数与控制流 是 CoddyKit 上的免费 Learn Rust Coding 课时。 这是第 3 节课,共 3 节。 你可以在下方免费阅读本课时的完整内容 — 然后在浏览器中使用内置代码编辑器和全天候 AI 导师进行实践。 这是 Learn Rust Coding 学习路径的一部分,你的进度在网页和 CoddyKit 应用中同步。 Learn Rust Coding 课程共包含 3 节课。
什么是函数
函数是执行特定任务的命名代码块。函数是组织代码并使代码可复用的基础。
- 代码复用:只需编写一次逻辑,即可多次使用。
- 模块化:将复杂问题拆分为更小、更易管理的部分。
- 可读性:为代码块赋予有意义的名称,从而提升代码的易读性。
您的第一个 Rust 函数
在 Rust 中,您可以使用 fn 关键字定义函数。main 函数是每个 Rust 程序的入口点。
下面介绍如何声明并调用一个简单的函数:
fn say_hello() {
println!("Hello from a function!");
}
fn main() {
say_hello(); // Call the function
println!("Back in main.");
}带参数的函数
函数可以接收称为参数的输入值。这样,函数每次调用时都可以处理不同的数据。
参数由名称和类型定义,两者之间用冒号分隔。
fn greet(name: &str) {
println!("Hello, {}!", name);
}
fn main() {
greet("Alice");
greet("Bob");
}带返回值的函数
函数还可以向调用方返回一个值。请在箭头(->)后指定返回类型。
函数体中的最后一个表达式会隐式返回。返回表达式不需要分号!
fn add_numbers(x: i32, y: i32) -> i32 {
x + y // No semicolon: this expression is returned
}
fn main() {
let sum = add_numbers(5, 7);
println!("The sum is: {}", sum);
}做出判断:`if`/`else`
if 表达式允许程序根据条件执行不同的代码块。条件必须始终是 bool(true/false)。
- 使用
if指定第一个条件。 - 使用
else if指定其他条件。 - 如果没有满足其他条件,使用
else作为备用分支。
Rust 中的 if 是一个表达式,这意味着它可以返回值!
if-else 表达式实战
下面介绍如何使用 if 和 else 根据条件赋值。请注意,它的行为类似于其他语言中的三元运算符。
fn main() {
let number = 7;
let message = if number < 10 {
"Small number"
} else {
"Large number"
};
println!("The number is: {}", message);
let other_num = 15;
if other_num % 2 == 0 {
println!("{} is even", other_num);
} else {
println!("{} is odd", other_num);
}
}重复执行代码:`loop`
loop 关键字会创建一个无限循环。当您需要重复执行某个操作,直到明确决定停止时,这非常有用。
使用 break 退出循环。您甚至可以使用 break 从 loop 表达式返回一个值。
fn main() {
let mut counter = 0;
let result = loop {
counter += 1;
if counter == 10 {
break counter * 2; // Break and return a value
}
};
println!("The result is {}", result);
}条件重复:`while`
while 循环会在指定条件保持为真时执行代码块。当您无法确定需要循环多少次时,它非常适合使用。
fn main() {
let mut count = 3;
while count != 0 {
println!("{}!", count);
count -= 1;
}
println!("LIFTOFF!!!");
}使用 `for` 循环进行迭代
for 循环用于遍历一组项目或一个数字范围。它是 Rust 中最常用的循环结构,可以让代码既安全又简洁。
- 它通常与范围结合使用(例如,
1..4表示 1、2、3,1..=4表示 1、2、3、4)。 - 它适用于实现了
Iterator特征的任何类型。
fn main() {
// Loop through a range
for number in 1..4 { // 1, 2, 3
println!("Number: {}", number);
}
// Loop through an array
let a = [10, 20, 30, 40, 50];
for element in a.iter() {
println!("The value is: {}", element);
}
}控制流挑战
请思考下面的 Rust 代码。result 的最终值是多少?
fn calculate_value(input: i32) -> i32 {
if input > 10 {
input * 2
} else if input == 5 {
input + 5
} else {
input
}
}
fn main() {
let result = calculate_value(5);
// What is result?
}回顾:函数与控制流
您已经掌握了编写动态程序所需的基础模块!
- 函数:使用
fn、参数和返回值来组织并复用代码。 if/else:进行判断并有条件地执行代码。请记住,它是一个表达式!loop:创建无限循环,使用break退出并返回值。while:只要条件为真就持续循环。for:安全地遍历集合和范围。
这些工具对于编写结构清晰且高效的 Rust 程序至关重要!
常见问题解答
「函数与控制流」课时是免费的吗?
是的 — 「函数与控制流」的完整文本可在网页上免费阅读。要进行交互式练习(内置代码编辑器和全天候 AI 导师)并解锁 Learn Rust Coding 课程的其余内容,请升级到 CoddyKit PRO。 Learn Rust Coding 课程共包含 3 节课。
「函数与控制流」这节课中我会学到什么?
学习定义函数,并使用 `if`/`else`、`loop`、`while` 和 `for` 表达式控制程序执行流程。 你通过在浏览器中直接运行的动手代码来练习 Learn Rust Coding,全天候 AI 导师会在你学习这节课的过程中回答你的问题。
学习 Learn Rust Coding 需要有经验吗?
无需任何先前经验。CoddyKit 上的 Learn Rust Coding 课程适合初学者到高级学习者,你可以从这里开始或从头开始,按照自己的节奏学习。 这是第 3 节课,共 3 节。
「函数与控制流」课时需要多长时间?
大多数 CoddyKit 课程大约需要 5–10 分钟。每节课都很精短且互动,所以你能稳步进步,并在网页和应用中从离开的地方继续。
我能在这节 Learn Rust Coding 课中编写并运行代码吗?
能。每节 Learn Rust Coding 课都包含内置代码编辑器,你可以在浏览器中直接编写并运行真实代码,并获得即时 AI 反馈 — 无需本地设置。
此课程中的所有课时
- 变量、可变性与遮蔽
- 基本数据类型与运算符
- 函数与控制流