Rust编程语言入门教程 (七)函数与控制流

Rust 系列

🎀Rust编程语言入门教程(一)安装Rust🚪

🎀Rust编程语言入门教程(二)hello_world🚪

🎀Rust编程语言入门教程(三) Hello Cargo🚪

🎀Rust编程语言入门教程(四)猜数游戏:一次猜测🚪

🎀Rust编程语言入门教程(五)猜数游戏:生成、比较神秘数字并进行多次猜测🚪

🎀Rust编程语言入门教程 (六)变量与可变性🚪

🎀Rust编程语言入门教程 (七)函数与控制流🚪

目录

引言

Rust 是一种现代的系统编程语言,以其内存安全和高性能而闻名。它通过严格的编译时检查和独特的所有权机制,帮助开发者编写安全且高效的代码。在 Rust 中,函数是程序的基本构建块,用于封装可重复使用的代码逻辑。此外,Rust 提供了多种控制流工具,如条件语句和循环,用于实现复杂的程序逻辑。本文将详细介绍 Rust 中函数的定义、参数传递、返回值处理,以及条件语句和循环的使用方法,帮助读者快速掌握 Rust 的核心语法。

一、函数

声明函数使用 fn 关键字

依照惯例,针对函数和变量名,Rust 使用 snake case 命名规范:

所有的字母都是小写的,单词之间使用下划线分开

二、函数的参数

parameters,arguments
parameters 是在函数里面定义的那个参数
arguments 是调用函数时传进去的那个具体参数

在函数参数里,必须声明每个参数的类型,编译器就无需对参数进行推断了

多个参数之间用逗号隔开。

三、函数体中的语句与表达式

  • 函数体由一系列语句组成,可选的由一个表达式结束
  • Rust 是一个基于表达式的语言
  • 语句是执行一些动作的指令
  • 表达式会计算产生一个值
  • 函数的定义也是语句
  • 语句不返回值,所以不可以使用let将一个语句赋给一个变量(例子)

四、函数的返回值

  • -> 符号后边声明函数返回值的类型,但是不可以为返回值命名
  • 在Rust里面,返回值就是函数体里面最后一个表达式的值
  • 若想提前返回,需使用return关键字,并指定一个值
  • 大多数函数都是默认使用最后一个表达式最为返回值

五、if 表达式

  • if表达式允许您根据条件来执行不同的代码分支
  • 这个条件必须是 bool类型
  • if表达式中,与条件想关联的代码块就叫做分支(arm)可选的,在后边可以加上一个else 表达式

使用 else if 处理多重条件

但如果使用了多于一个else if,那么最好使用match来重构代码

六、Rust 循环

① loop 循环

  • loop 关键字告诉 Rust 反复的执行一块代码,直到你喊停
  • 可以在 loop 循环中使用 break 关键字来告诉程序何时停止循环

② while条件循环

另外一种常见的循环模式是每次执行循环体之前都判断一次条件。

while 条件循环为这种模式而生。

执行较慢,每次遍历都需要进行条件判断。

③ for 循环遍历集合

可以使用 while loop 来遍历集合,但是易错且低效

使用 for 循环更简洁紧凑,它可以针对集合中的每个元素来执行一些代码

由于 for 循环的安全、简洁性,所以它在 Rust 里用的最多.

Range

  • 标准库提供
  • 指定一个开始数字一个结束数字,Range 可以生成它们之间的数字(不含结束)
    rev 方法可以反转 Range

1..4表示 1到3 即 1,2,3 不包括 4。

总结

本文系统地介绍了 Rust 编程语言中的函数和控制流机制。通过详细讲解函数的声明、参数传递、返回值处理,以及条件语句和循环的使用方法,读者可以更好地理解 Rust 的语法特点和编程范式。函数是 Rust 程序的核心,通过明确的参数类型声明和灵活的返回值处理,开发者可以编写出清晰、高效的代码。同时,Rust 提供的 if 表达式、loop、while 和 for 循环等控制流工具,使得代码逻辑的实现更加简洁和安全。掌握这些基础知识后,读者可以进一步探索 Rust 的高级特性,如所有权系统、模式匹配等,以提升编程能力。

相关推荐
花褪残红青杏小18 小时前
Rust图像处理第11节-故障风 RGB 通道偏移:错位错色制造电子故障
rust·webassembly·图形学
花褪残红青杏小19 小时前
Rust图像处理第10节-浮雕/雕刻滤镜:邻域差值生成凹凸效果
rust·webassembly·图形学
Rockbean20 小时前
10分钟Solana-性能web3-2.4 Rust 编程基础三:结构体、枚举、错误处理与集合
rust·web3·智能合约
doiito21 小时前
【Agent Harness】Gliding Horse 上下文感知与智能压缩:让 Agent 的“注意力”永不偏移
ai·rust·架构设计·系统设计·ai agent
花褪残红青杏小2 天前
Rust图像处理第9节-Sobel 边缘检测:第一个真正用卷积的算法
rust·webassembly·图形学
doiito2 天前
【Agent Harness】Gliding Horse L2 作战地图深度优化:给多 Agent 上下文装上“精准导航”
ai·rust·架构设计·系统设计·ai agent
花褪残红青杏小2 天前
Rust图像处理第8节-暗角 & 复古胶片特效:四周衰减中心高亮
rust·webassembly·图形学
独孤留白3 天前
从C到Rust:Rust 的 Trait 不是Interface,那是什么?
rust