【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) 。
相关推荐
一隅论数智3 天前
给AI一张“业务概念地图“:本体如何从哲学走向企业智能
大数据·人工智能·经验分享·笔记·学习·学习方法·政务
小羊没烦恼!3 天前
初探性能优化——2个月到4小时的性能提升
java·开发语言·windows·算法·c#
XiHongShi20163 天前
STM32F407 RTC定时器例程,建议保存
stm32·单片机·学习
爱吃苹果的日记本3 天前
离散数学第六课
学习·离散数学
伞伞悦读3 天前
【第38期】Python 模块与包详解:import、from、模块搜索路径、包结构和 __init__
开发语言·python
C语言小火车3 天前
C/C++ 为什么需要编译器?
开发语言·c++
AI职业加油站3 天前
AI智能体应用工程师证书:政策红利下的职业新风口
大数据·运维·人工智能·学习·职场发展
旖旎夜光3 天前
力控面试题 01.01: 判定字符是否唯一(位运算) —— 题解
c++·学习·算法·leetcode·力控
奇思妙想聪明勤奋的小羊3 天前
DeepAgents第5章:子Agent 与上下文隔离—让 Agent学会委派
人工智能·python·学习·语言模型