【Rust入门知识点学与练】第5课:函数

知识点:定义和调用函数

rust 复制代码
fn main() {
    // 调用无参数无返回值的函数
    say_hello();

    // 调用有参数有返回值的函数
    let result = add(3, 5);
    println!("3 + 5 = {}", result);

    // 调用有多个参数的函数
    greet("小明", 18);
}

// 无参数无返回值
fn say_hello() {
    println!("Hello!");
}

// 有参数,有返回值(-> 后面写返回类型)
fn add(a: i32, b: i32) -> i32 {
    a + b  // 最后一个表达式不加 ; 就是返回值
}

// 多个不同类型的参数
fn greet(name: &str, age: i32) {
    println!("你好 {},你 {} 岁了", name, age);
}

核心规则

规则 说明

参数必须写类型 fn add(a: i32, b: i32)

返回值用 -> 声明 fn add(...) -> i32

返回值不加 ; a + b 是返回值,a + b; 不是

字符串参数用 &str fn greet(name: &str)

动手试试

补全下面的代码:

复制代码
fn main() {
    // 补全:调用 max 函数,传入 42 和 17,结果赋给 bigger
    // 然后打印 "较大的数是: {bigger}"

    // 补全:调用 is_adult 函数,传入 20,结果赋给 adult
    // 然后打印 "是否成年: {adult}"

    // 补全:调用 introduce 函数,传入 "小红" 和 25
}

// 补全:定义函数 max,接收两个 i32 参数 a 和 b,返回较大的那个
// 提示:用 if/else 表达式作为返回值

// 补全:定义函数 is_adult,接收一个 i32 参数 age,返回 bool
// 提示:age >= 18

// 补全:定义函数 introduce,接收 &str 类型的 name 和 i32 类型的 age
// 打印 "大家好,我叫{name},今年{age}岁"

期望输出:

较大的数是: 42

是否成年: true

大家好,我叫小红,今年25岁

写好了贴过来,没问题就进入第6课:循环(for / while / loop) 👋

贴代码

rust 复制代码
fn main() {
    // 补全:调用 max 函数,传入 42 和 17,结果赋给 bigger
    // 然后打印 "较大的数是: {bigger}"
    let bigger = max(42, 17);
    println!("较大的数是: {}", bigger);

    // 补全:调用 is_adult 函数,传入 20,结果赋给 adult
    // 然后打印 "是否成年: {adult}"
    let adult = is_adult(20);
    println!("是否成年: {}", adult);

    // 补全:调用 introduce 函数,传入 "小红" 和 25
    introduce("小红", 25);
}

// 补全:定义函数 max,接收两个 i32 参数 a 和 b,返回较大的那个
// 提示:用 if/else 表达式作为返回值
fn max(a: i32, b: i32) -> i32 {
    if a > b {
        a
    } else {
        b
    }
}

// 补全:定义函数 is_adult,接收一个 i32 参数 age,返回 bool
// 提示:age >= 18
fn is_adult(age: i32) -> bool {
    age >= 18
}

// 补全:定义函数 introduce,接收 &str 类型的 name 和 i32 类型的 age
// 打印 "大家好,我叫{name},今年{age}岁"
fn introduce(name: &str, age: i32) {
    println!("大家好,我叫{},今年{}岁", name, age);
}

评语

完全正确!👏

你掌握了:

函数的定义和调用

参数类型声明和返回值

if/else 表达式作为返回值(不加 ; )

重点知识点

  1. 函数定义格式: fn 函数名(参数名: 类型, 参数名: 类型) -> 返回类型 { 函数体 }
  2. 没有返回值的函数,省略 -> ,相当于返回 () 单元类型。
  3. if 表达式可以直接作为函数返回值,不需要写 return 。
  4. 布尔判断可以直接写 age >= 18 ,表达式结果就是 bool 。
  5. 调用函数: 函数名(实参1, 实参2) 。
相关推荐
破茧蝴蝶1 小时前
Python分布式爬虫完整教程
开发语言·python
狗凯之家源码网2 小时前
全新 PHP 轻量客服聊天室源码深度评测
开发语言·php·聊天室系统
我是伪码农2 小时前
百蝶杯学习
学习
远离UE42 小时前
UE5 Substrate Thin Film 源码拆析
开发语言·javascript·ue5
keyipatience2 小时前
JavaScript学习(1)书写位置,变量、数据类型、运算符
开发语言·前端·javascript·css·学习
栈帧之外3 小时前
【C++】STL之set
开发语言·c++
catchadmin4 小时前
免费可商用 PHP 管理后台 CatchAdmin V5.4.1 发布,新增 MCP 支持
开发语言·php
xian_wwq4 小时前
【学习笔记】Milvus 如何完成一次向量相似度检索,Milvus 索引到底应该怎么选?-15
笔记·学习·milvus
Hhuhkt4 小时前
3D 云养宠小游戏
学习
jimy15 小时前
c++的 Type Traits (二、更详细版本)
开发语言·c++