Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >Rust 基础语法(二) -- 函数与循环

Rust 基础语法(二) -- 函数与循环

作者头像
用户3147702
发布于 2022-06-27 09:07:07
发布于 2022-06-27 09:07:07
34400
代码可运行
举报
运行总次数:0
代码可运行

上一篇文章中,我们介绍了 Rust 最基础的变量、运算、数据类型、注释等内容。

本文,我们就来进一步讲解函数、条件、循环等基础语法。

2. 函数

2.1 函数定义

此前的文章中我们已经介绍过 Rust 的函数:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
fn <函数名> ( <参数> ) { <函数体> }

Rust 的函数名命名规范是下划线式:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
fn main() {
    println!("Hello, world!");
    another_function();
}

fn another_function() {
    println!("Hello, runoob!");
}

2.2 函数参数

Rust 中定义函数如果需要具备参数必须声明参数名称和类型:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
fn main() {
    another_function(5, 6);
}

fn another_function(x: i32, y: i32) {
    println!("x 的值为 : {}", x);
    println!("y 的值为 : {}", y);
}

函数参数的传入类型与声明类型必须严格匹配。

2.3 函数体

Rust 中可以在一个用 {} 包括的块里编写一个较为复杂的表达式,从而构成一个函数体:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
fn main() {
    let x = 5;

    let y = {
        let x = 3;
        x + 1
    };

    println!("x 的值为 : {}", x);
    println!("y 的值为 : {}", y);
}

打印出了:

x 的值为 : 5 y 的值为 : 4

  • 需要注意的是函数体中的 x+1 末尾是没有分号的,否则它将变成一条语句。

2.4 函数嵌套

在 Rust 中,函数定义可以嵌套:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
fn main() {
    fn five() -> i32 {
        5
    }
    println!("five() 的值为: {}", five());
}

2.5 函数返回值

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
fn add(a: i32, b: i32) -> i32 {
    return a + b;
}

3. 条件语句

3.1 条件语句的用法

和许多其他语言类似,Rust 的条件语句并不难理解:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
fn main() {
    let a = 12;
    let b;
    if a > 0 {
        b = 1;
    }  
    else if a < 0 {
        b = -1;
    }  
    else {
        b = 0;
    }
    println!("b is {}", b);
}

总结起来就是这样:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
if <condition> { block 1 } else { block 2 }

condition 必须是 bool 类型,也可以加括号括起来,但一般来说并不需要。

3.2 条件语句与函数体表达式结合

条件语句的语法中的 { block 1 } 和 { block 2 } 也可以用函数表达式:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
fn main() {
    let a = 3;
    let number = if a > 0 { 1 } else { -1 };
    println!("number 为 {}", number);
}

4. 循环

Rust 语法中的循环有三种:

  1. while 循环
  2. for 循环
  3. loop 循环

4.1 while 循环

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
fn main() {
    let mut number = 1;
    while number != 4 {
        println!("{}", number);
        number += 1;
    }
    println!("EXIT");
}

打印出了:

1 2 3 EXIT

4.2 for 循环

rust 没有 C 语言中那种三元操作的 for 循环,rust 的 for 循环用于迭代一个元组或数组,类似于 php 中的 foreach 循环:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
fn main() {
    let a = [10, 20, 30, 40, 50];
    for i in a.iter() {
        println!("值为 : {}", i);
    }
}

4.3 loop 循环

loop 循环就是无限循环:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
fn main() {
    let s = ['R', 'U', 'N', 'O', 'O', 'B'];
    let mut i = 0;
    loop {
        let ch = s[i];
        if ch == 'O' {
            break;
        }
        println!("\'{}\'", ch);
        i += 1;
    }
}

4.4 loop 循环与函数体表达式

loop 循环可以通过 break 关键字类似于 return 一样使整个循环退出并给予外部一个返回值。这是一个十分巧妙的设计,因为 loop 这样的循环常被用来当作查找工具使用,如果找到了某个东西当然要将这个结果交出去:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
fn main() {
    let s = ['R', 'U', 'N', 'O', 'O', 'B'];
    let mut i = 0;
    let location = loop {
        let ch = s[i];
        if ch == 'O' {
            break i;
        }
        i += 1;
    };
    println!(" \'O\' 的索引为 {}", location);
}

打印出了:

'0' 的索引为 3

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2022-05-21,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 小脑斧科技博客 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
Rust学习笔记之基础概念
今天,我们继续「Rust学习笔记」的探索。我们来谈谈关于「基础概念」的相关知识点。
前端柒八九
2023/03/23
7300
Rust学习笔记之基础概念
Rust基础语法(注释、函数、打印)
函数在 Rust 代码中非常普遍。你已经见过语言中最重要的函数之一:main 函数,它是很多程序的入口点。你也见过 fn 关键字,它用来声明新函数。 Rust 函数的基本形式: fn <函数名> ( <参数> ) <函数体> Rust 代码中的函数和变量名使用 snake case 规范风格。在 snake case 中,所有字母都是小写并使用下划线分隔单词。这是一个包含函数定义示例的程序:
共饮一杯无
2022/11/28
7660
Rust基础语法(注释、函数、打印)
【Rust学习】03_常用编程概念
本章介绍了几乎所有编程语言中出现的概念以及它们在 Rust 中的工作方式。许多编程语言的核心有很多共同点。本章中介绍的概念都不是 Rust 独有的,但我们将在 Rust 的背景中讨论它们,并解释使用这些概念的约定。
思索
2024/07/12
2350
【Rust学习】03_常用编程概念
一网打尽 Rust 语法
大家好,我是「柒八九」。一个「专注于前端开发技术/Rust及AI应用知识分享」的Coder
前端柒八九
2024/04/30
1670
一网打尽 Rust 语法
Rust学习笔记(3)- 变量和可变属性
就会直接报错,会提示不能第二次给不可变的变量赋值(cannot assign twice to immutable variable)。 除非写成这样:
TestOps
2022/04/07
4940
Rust学习笔记(3)- 变量和可变属性
【Rust】001-基础语法:变量声明及数据类型
Rust 入门与实践:https://juejin.cn/book/7269676791348854839?utm_source=course_list
訾博ZiBo
2025/01/06
730
【Rust】001-基础语法:变量声明及数据类型
rust语句,表达式以及函数
在rust里,语句和表达式的区别是非常重要的。语句没有返回值,表达式有返回值。例如:
zy010101
2022/12/21
2660
rust语句,表达式以及函数
用 rustlings 练习 Rust 语言
In Rust, variables are immutable(不可变的) by default.
早起的鸟儿有虫吃
2025/04/11
750
用 rustlings 练习 Rust 语言
【Rust 基础篇】Rust 匹配(Pattern Matching)
在 Rust 中,匹配(Pattern Matching)是一种强大的语言特性,它允许我们根据不同的模式来执行不同的操作。匹配可以用于多种情况,例如处理枚举类型、解构元组和结构体、处理条件表达式等。本篇博客将详细介绍 Rust 中的匹配语法,并通过示例代码来说明其用法和优势。
繁依Fanyi
2023/10/12
4090
Rust流程控制
语句在英文中是 statement,表达式则是 expression。我们可能常常听说过“赋值语句”或者“算数表达式”这些名词,但是你有想过为什么不是“赋值表达式”吗?语句和表达式有一个重要的区别在于,表达式总是返回一个值,而语句不会。例如:
端碗吹水
2022/06/01
5930
【Rust 基础篇】Rust 模式语法
Rust是一种现代的、高性能的系统级编程语言,它以安全性、并发性和高效性著称。在Rust中,模式(Pattern)是一种强大的语法,用于匹配和解构不同的数据结构。模式可以应用于各种场景,例如匹配枚举、元组、结构体、引用、切片以及自定义类型等。本篇博客将深入探索Rust的模式语法,包括各种模式的定义、使用和搭配使用的技巧,帮助您更好地理解和运用Rust的模式匹配。
繁依Fanyi
2023/10/12
3290
【Rust 基础篇】Rust函数详解
函数是编程语言中的基本构建块之一,用于封装可重用的代码块,并实现特定的功能。在Rust中,函数是一种重要的概念,它们具有严格的类型系统和内存安全性。本篇博客将详细介绍Rust函数的定义、参数、返回值和其他相关概念,并提供相关代码示例。
繁依Fanyi
2023/10/12
3790
【Rust】002-基础语法:函数
在 Rust 中,函数是组织代码的一个基本模块。前面几节中我们已经见过了 Rust 最重要的函数 main 函数,它是整个程序的入口。有了函数,我们就可以把代码逻辑片段封装在其中,从而提高代码的可读性和复用性。
訾博ZiBo
2025/01/06
780
Rust入坑指南:常规套路
学习一门语言第一个要了解的当然就是变量啦。Rust使用关键字let来定义变量。我们写一个简单的demo
Jackeyzhe
2020/03/11
7260
Rust入坑指南:常规套路
Rust 从入门到精通06-语句和表达式
语句和表达式是 Rust 语言实现逻辑控制的基本单元。 在 Rust 程序里面,语句(Statement)是执行一些操作但不返回的指令,表达式(Expressions)计算并产生一个值。表达式可以是语句的一部分,反过来,语句也可以是表达式的一部分。
IT可乐
2022/09/27
4400
Rust 从入门到精通06-语句和表达式
Rust函数
其中,fn 为函数声明关键字,<function> 为函数名,<parameters> 为参数列表,{} 用于指定函数体的开始和结束。和大多数编程语言一样,Rust 中 main 函数也是程序的入口点。
hotarugali
2022/03/18
4710
Rust函数和注释
在前面文章中,基本上都使用了main函数,而main函数是rust 程序的入口,声明函数的方式也很简单:
玖柒的小窝
2021/11/06
4560
Rust实战系列-基本语法
本文是《Rust in action》学习总结系列的第二部分,更多内容请看已发布文章:
abin
2023/03/21
2.3K0
Rust实战系列-基本语法
Rust语法入门
Rust 是一种系统级编程语言,它的设计目标是提供高性能、安全性和并发性。Rust 的主要优势包括:
码客说
2023/04/17
1.3K0
Rust - 安装环境、基本类型、流程控制、函数、模块、泛型、所有权
学习Rust语言是公司同事最先开始提议的,准备用接下来的项目试试水,Rust是一个强类型编译型语言,比较偏向底层,所以开启了Rust的探索之旅。
stark张宇
2023/02/24
1.2K0
相关推荐
Rust学习笔记之基础概念
更多 >
领券
💥开发者 MCP广场重磅上线!
精选全网热门MCP server,让你的AI更好用 🚀
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档