0Pricing
Learn Rust Coding · 课时

函数与控制流

学习定义函数,并使用 `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 反馈 — 无需本地设置。

此课程中的所有课时

  1. 变量、可变性与遮蔽
  2. 基本数据类型与运算符
  3. 函数与控制流
← 返回 Learn Rust Coding