【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 小时前
Qt_QMediaPlayer类与QMediaPlaylist类
开发语言·qt
统计学小王子1 小时前
数学建模国赛倒计时6天——《软件工具(R语言精讲)》
开发语言·数学建模·r语言
C++ 老炮儿的技术栈1 小时前
Qt5 使用 QPainter 绘制阿基米德螺线
开发语言·c++·windows·qt·代码化
EasyGBS1 小时前
从接入到稳定播放:无插件直播H5视频流媒体播放器EasyPlayer.js如何撑起Web端流媒体
开发语言·前端·javascript
留白_1 小时前
【tableau入门学习】2、柱状图、折线图、饼图、散点图
学习·tableau
FfHUCisI1 小时前
GMP 调度器:Go 并发的心脏是如何跳动的
开发语言·golang·php
Java小白笔记1 小时前
Java 实现阿里云 OSS 文件上传链路:普通上传、秒传、分片与断点续传
java·开发语言·数据库·spring·阿里云
AI视觉网奇1 小时前
blende 下载安装学习笔记
笔记·学习
传奇开心果编程1 小时前
【Rust入门知识点学与练】第9课:Vec 动态数组
开发语言·学习·rust