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

news/2025/2/22 4:05:51

Rust 系列

🎀Rust编程语言入门教程(一)安装Rust🚪
🎀Rust编程语言入门教程(二)hello_world🚪
🎀Rust编程语言入门教程(三) Hello Cargo🚪
🎀Rust编程语言入门教程(四)猜数游戏:一次猜测🚪
🎀Rust编程语言入门教程(五)猜数游戏:生成、比较神秘数字并进行多次猜测🚪
🎀Rust编程语言入门教程 (六)变量与可变性🚪
🎀Rust编程语言入门教程 (七)函数与控制流🚪

目录

  • Rust 系列
  • 引言
  • 一、函数
  • 二、函数的参数
  • 三、函数体中的语句与表达式
  • 四、函数的返回值
  • 五、if 表达式
  • 六、Rust 循环
    • ① loop 循环
    • ② while条件循环
    • ③ for 循环遍历集合
    • Range
  • 总结

引言

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 的高级特性,如所有权系统、模式匹配等,以提升编程能力。


http://www.niftyadmin.cn/n/5861578.html

相关文章

数据结构——字符串匹配KMP

首先明确几个概念&#xff1a; s[ ]: 主串 p[ ]: 模式串(用于匹配) next[ j ]&#xff1a;以p[ j ]结尾的p字符串的前后缀最大匹配值,也是当p[ j1 ]与s[ i ]不匹配时,j指针移动的下一位置。(需要预处理出来) AcWing - 算法基础课 代码如下&#xff1a; #include<iostre…

BS架构网络安全 网络安全架构分析

文章目录 Web架构安全分析 一、web工作机制 1. 简述用户访问一个网站的完整路径2. web系统结构 二、url 1. 概述2. 完整格式3. url编码 三、HTTP 1. request请求报文2. http请求方法3. response响应报文 三、同源策略 1. 概述2. 同源策略的条件3. 非同源受到的限制4. …

vue2和vue3的按需引入的详细对比通俗易懂

以下是 Vue2 与 Vue3 按需引入的对比详解&#xff0c;用最简单的语言和场景说明差异&#xff1a; 一、按需引入的本质 目标&#xff1a;只打包项目中实际用到的代码&#xff08;组件、API&#xff09;&#xff0c;减少最终文件体积。类比&#xff1a;去餐厅点餐&#xff0c;只…

从面试中的“漏掉步骤”谈自我表达与思维方式的转变

在今天的面试中&#xff0c;我遇到了一个让我深刻反思自己思维方式的问题。当面试官问到如何应对用户量和请求量逐渐增加时&#xff0c;我的回答遗漏了一些基础步骤&#xff0c;导致我给出了“我暂时想不出更好的反思”的回答。这一经历让我意识到&#xff0c;在面对问题时&…

纯手工搭建整套CI/CD流水线指南

目录 一、前言 二、环境准备 1、服务器开荒&#xff08;192.168.1.200&#xff09; 2、离线资源清单&#xff08;提前用U盘拷好&#xff09; 三、硬核安装&#xff1a;比拧螺丝还细的步骤 Step1&#xff1a;搭建GitLab&#xff08;注意&#xff01;这是只内存饕餮&#xf…

深入理解 SQL 注入漏洞及解决方案

一、引言 在当今数字化时代&#xff0c;数据库作为存储和管理数据的核心组件&#xff0c;其安全性至关重要。SQL 注入是一种常见且极具威胁性的数据库安全漏洞&#xff0c;它可能导致数据泄露、篡改甚至系统被完全控制。本文将深入探讨 SQL 注入漏洞的产生原因、表现形式以及如…

MacOS Docker 安装指南

MacOS Docker 安装指南 引言 Docker 是一个开源的应用容器引擎,它允许您将应用程序与基础设施分开,以此快速交付软件。Docker 的核心思想是将应用程序及其依赖打包到一个可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。本文将为您详细介绍如何在 M…

ollama修改监听ip: 0.0.0.0

确认Ollama绑定IP地址 默认情况下&#xff0c;Ollama可能仅监听本地回环地址&#xff08;127.0.0.1&#xff09;。要允许外部访问&#xff0c;需将其配置为监听所有IP&#xff08;0.0.0.0&#xff09;或指定IP&#xff08;如10…19&#xff09;。 修改启动命令&#xff08;推荐…