rust语言学习
文章平均质量分 80
谦谦孑
一个菜鸟
展开
-
Rust程序设计语言 第十三章Rust 中的函数式语言功能:迭代器与闭包
闭包和迭代器是 Rust 受函数式编程语言观念所启发的功能。他们对 Rust 以底层的性能来明确的表达高级概念的能力有很大贡献。闭包和迭代器的实现达到了不影响运行时性能的程度。这正是 Rust 竭力提供零成本抽象的目标的一部分。现在我们改进了我们 I/O 项目的(代码)表现力,让我们看一看更多cargo的功能,他们将帮助我们准备好将项目分享给世界。原创 2023-06-27 10:05:12 · 598 阅读 · 0 评论 -
Rust程序语言设计 第十二章 一个 I/O 项目:构建一个命令行程序
在关于迭代器的第十三章中,我们将会学习如何更有效率的处理这种情况,不过现在,复制一些字符串来取得进展是没有问题的,因为只会进行一次这样的拷贝,而且文件路径和要搜索的字符串都比较短。在关于迭代器的第十三章中,我们将会学习如何更有效率的处理这种情况,不过现在,复制一些字符串来取得进展是没有问题的,因为只会进行一次这样的拷贝,而且文件路径和要搜索的字符串都比较短。虽然我们的程序还很小,这些瑕疵并不是什么大问题,不过随着程序功能的丰富,将会越来越难以用简单的方法修复他们。命令行参数指定的文件的功能。原创 2023-06-27 10:06:04 · 656 阅读 · 1 评论 -
Rust 程序设计语言 第十一章编写自动化测试
你也可以向assert!assert_eq!和assert_ne!宏传递一个可选的失败信息参数,可以在测试失败时将自定义失败信息一同打印出来。任何在assert!的一个必需参数和assert_eq!和assert_ne!的两个必需参数之后指定的参数都会传递给format!宏(在第八章的“使用运算符或format!宏拼接字符串”部分讨论过),所以可以传递一个包含{}占位符的格式字符串和需要放入占位符的值。自定义信息有助于记录断言的意义;当测试失败时就能更好的理解代码出了什么问题。原创 2023-06-15 16:24:26 · 850 阅读 · 1 评论 -
Rust 程序设计语言 第十章泛型、Trait 和生命周期
当使用泛型定义函数时,本来在函数签名中指定参数和返回值的类型的地方,会改用泛型来表示。采用这种技术,使得代码适应性更强,从而为函数的调用者提供更多的功能,同时也避免了代码的重复。回到largest函数,示例 10-4 中展示了两个函数,它们的功能都是寻找 slice 中最大值。接着我们使用泛型将其合并为一个函数。文件名:src/main.rsprintln!println!示例 10-4:两个函数,不同点只是名称和签名类型。原创 2023-06-06 14:36:07 · 436 阅读 · 5 评论 -
Rust 程序设计语言 第九章错误处理
让我们使用 Rust 类型系统的思想来进一步确保值的有效性,并尝试创建一个自定义类型以进行验证。回忆一下第二章的猜猜看游戏,我们的代码要求用户猜测一个 1 到 100 之间的数字,在将其与秘密数字做比较之前我们从未验证用户的猜测是位于这两个数字之间的,我们只验证它是否为正。在这种情况下,其影响并不是很严重:“Too high” 或 “Too low” 的输出仍然是正确的。但是这是一个很好的引导用户得出有效猜测的辅助,例如当用户猜测一个超出范围的数字或者输入字母时采取不同的行为。一种实现方式是将猜测解析成。原创 2023-05-29 11:11:03 · 583 阅读 · 1 评论 -
Rust 程序设计语言 第八章常见集合
在开始深入这些方面之前,我们需要讨论一下术语字符串的具体意义。Rust 的核心语言中只有一种字符串类型:字符串 slicestr,它通常以被借用的形式出现,&str。第四章讲到了字符串 slices:它们是一些对储存在别处的 UTF-8 编码字符串数据的引用。举例来说,由于字符串字面值被储存在程序的二进制输出中,因此字符串字面值也是字符串 slices。vector、字符串和哈希 map 会在你的程序需要储存、访问和修改数据时帮助你。原创 2023-05-17 10:17:04 · 369 阅读 · 1 评论 -
Rust 程序设计语言 第七章使用包、Crate 和模块管理不断增长的项目
在本节,我们将讨论模块和其它一些关于模块系统的部分,如允许你命名项的路径paths用来将路径引入作用域的use关键字;以及使项变为公有的pub关键字。我们还将讨论as关键字、外部包和 glob 运算符。现在,让我们把注意力放在模块上!首先,我们将从一系列的规则开始,在你未来组织代码的时候,这些规则可被用作简单的参考。接下来我们将会详细的解释每条规则。如果希望将一个路径下所有公有项引入作用域,可以指定路径后跟这个use语句将中定义的所有公有项引入当前作用域。使用 glob 运算符时请多加小心!原创 2023-05-15 10:07:50 · 246 阅读 · 2 评论 -
Rust 程序设计语言 第六章枚举和模式匹配
结构体给予你将字段和数据聚合在一起的方法,像Rectangle结构体有width和height两个字段。而枚举给予你将一个值成为一个集合之一的方法。比如,我们想让Rectangle是一些形状的集合,包含Circle和Triangle。为了做到这个,Rust 提供了枚举类型。让我们看看一个需要诉诸于代码的场景,来考虑为何此时使用枚举更为合适且实用。假设我们要处理 IP 地址。目前被广泛使用的两个主要 IP 标准:IPv4(version four)和 IPv6(version six)。原创 2023-05-11 10:03:13 · 135 阅读 · 1 评论 -
Rust 程序设计语言 第五章使用结构体组织相关联的数据
结构体和我们在“元组类型”部分论过的元组类似,它们都包含多个相关的值。和元组一样,结构体的每一部分可以是不同类型。但不同于元组,结构体需要命名各部分数据以便能清楚的表明其值的意义。由于有了这些名字,结构体比元组更灵活:不需要依赖顺序来指定或访问实例中的值。定义结构体,需要使用struct关键字并为整个结构体提供一个名字。结构体的名字需要描述它所组合的数据的意义。原创 2023-05-06 10:58:01 · 391 阅读 · 8 评论 -
Rust 程序设计语言 第四章认识所有权
Rust 的核心功能(之一)是所有权ownership虽然该功能很容易解释,但它对语言的其他部分有着深刻的影响。所有程序都必须管理其运行时使用计算机内存的方式。一些语言中具有垃圾回收机制,在程序运行时有规律地寻找不再使用的内存;在另一些语言中,程序员必须亲自分配和释放内存。Rust 则选择了第三种方式:通过所有权系统管理内存,编译器在编译时会根据一系列的规则进行检查。如果违反了任何这些规则,程序都不能编译。在运行时,所有权系统的任何功能都不会减慢程序。原创 2023-05-06 10:48:56 · 149 阅读 · 0 评论 -
用Rust语言打印圣诞颂歌 “The Twelve Days of Christmas” 的歌词,并利用歌曲中的重复部分(编写循环)
【代码】用Rust语言打印圣诞颂歌 “The Twelve Days of Christmas” 的歌词,并利用歌曲中的重复部分(编写循环)原创 2023-04-26 13:53:17 · 193 阅读 · 0 评论 -
用Rust语言生成 n 阶斐波那契数列
【代码】用Rust语言生成 n 阶斐波那契数列。原创 2023-04-26 13:50:22 · 96 阅读 · 0 评论 -
用Rust语言实现摄氏温度和华氏温度的相互转化
*原创 2023-04-26 13:47:35 · 121 阅读 · 0 评论 -
Rust 程序设计语言 第三章常见编程概念
你做到了!这是一个大章节:你学习了变量、标量和复合数据类型、函数、注释、if表达式和循环!相互转换摄氏与华氏温度。生成 n 阶斐波那契数列。打印圣诞颂歌 “The Twelve Days of Christmas” 的歌词,并利用歌曲中的重复部分(编写循环)。当你准备好继续的时候,让我们讨论一个其他语言中并不常见的概念:所有权(ownership)。原创 2023-04-26 13:41:19 · 342 阅读 · 0 评论 -
Rust 程序设计语言 第二章 写个猜数字游戏
letmatch、函数、使用外部 crate 等等,接下来的几章,你会继续深入学习这些概念。第三章介绍大部分编程语言都有的概念,比如变量、数据类型和函数,以及如何在 Rust 中使用它们。第四章探索所有权(ownership),这是一个 Rust 同其他语言大不相同的功能。第五章讨论结构体和方法的语法,而第六章侧重解释枚举。原创 2023-04-26 11:42:30 · 190 阅读 · 0 评论 -
Rust 程序设计语言 第一章入门
安装好rust后就可以开始编写第一个Rust程序了,当学习一门新语言的时候,使用该语言在屏幕上打印是一项传统,我们将沿用这一传统!注意:rust 对于你的编辑器、工具,以及代码位于何处并没有特定的要求,如果你更倾向于使用集成开发环境(IDE),而不是命令行,请尽管使用你喜欢的 IDE。目前很多 IDE 都在一定程度上支持 Rust;查看 IDE 文档以了解更多细节。Rust 团队一直致力于借助提供强大的 IDE 支持。首先创建一个存放 Rust 代码的目录。原创 2023-04-26 11:27:23 · 230 阅读 · 0 评论