

- 小明和“去中心化”
很久很久以前,在一个小村庄里住着一个叫小明的小男孩。小明是一个非常聪明和好奇的孩子,他总是对新事物充满了兴趣。 有一天,小明听说了一个神奇的技术叫做"去中心化"。他听说这个技术可以让人们更加自由和平等地进行合作和交流,于是他决定去探索一下。 https://mirror.xyz/zhanghe.eth/UvrP-WXqP2SF0VTkpQUktUUmaMZmVHkQyv5Y-R4yXJY
- Rust 程序设计 - vector 用来储存一系列的值
Vec,也被称为 vector。vector 允许我们在一个单独的数据结构中储存多个值,所有值在内存中彼此相邻排列。vector 只能储存相同类型的值。它们在拥有一系列项的场景下非常实用,例如文件中的文本行或购物车中商品的价格。 张赫的博客 (zhanghe.cool)
- Rust 程序设计 - 将模块分割进不同文件
到目前为止,本章所有的例子都在一个文件中定义多个模块。当模块变得更大时,你可能想要将它们的定义移动到单独的文件中,从而使代码更容易阅读。 张赫的博客 (zhanghe.cool)
- Rust 程序设计 - 使用 use 关键字将名称引入作用域
到目前为止,似乎我们编写的用于调用函数的路径都很冗长且重复,并不方便。例如,示例 7-7 中,无论我们选择 add_to_waitlist 函数的绝对路径还是相对路径,每次我们想要调用 add_to_waitlist 时,都必须指定 front_of_house 和 hosting。幸运的是,有一种方法可以简化这个过程。我们可以使用 use 关键字将路径一次性引入作用域,然后调用该路径中的项,就如同它们是本地项一样。 张赫的博客 (zhanghe.cool)
- Rust 程序设计 - 路径用于引用模块树中的项
来看一下 Rust 如何在模块树中找到一个项的位置,我们使用路径的方式,就像在文件系统使用路径一样。如果我们想要调用一个函数,我们需要知道它的路径。 路径有两种形式: * 绝对路径(absolute path)从 crate 根部开始,以 crate 名或者字面量 crate 开头。 * 相对路径(relative path)从当前模块开始,以 self、super 或当前模块的标识符开头。 张赫的博客 (zhanghe.cool)
- Rust 程序设计 - 定义模块来控制作用域与私有性
在本节,我们将讨论模块和其它一些关于模块系统的部分,如允许你命名项的 路径(paths);用来将路径引入作用域的 use 关键字;以及使项变为公有的 pub 关键字。我们还将讨论 as 关键字、外部包和 glob 运算符。现在,让我们把注意力放在模块上! 张赫 (zhanghe.cool)
- Rust 程序设计 - 使用包、Crate 和 模块 管理不断增长的项目
当你编写大型程序时,组织你的代码显得尤为重要,因为你想在脑海中通晓整个程序,那几乎是不可能完成的。通过对相关功能进行分组和划分不同功能的代码,你可以清楚在哪里可以找到实现了特定功能的代码,以及在哪里可以改变一个功能的工作方式。 张赫 (zhanghe.cool)
- Rust 程序设计 - if let 简单控制流
if let 语法让我们以一种不那么冗长的方式结合 if 和 let,来处理只匹配一个模式的值而忽略其他模式的情况。可以认为 if let 是 match 的一个语法糖,它当值匹配某一模式时执行代码而忽略所有其他值。 张赫 (zhanghe.cool)
- 程序员新闻 - WebAssembly:2023 年的 5 个预测
Wasm现在在浏览器之外享受的成功与浏览器内部一样多(如果不是更多的话)。这一趋势是2023年将要发生的大部分工作的基础。 成为一名开发者是我必须为之奋斗的梦想 | 张赫 (zhanghe.cool)
- Rust 程序设计 - match 控制流运算符
Rust 有一个叫做 match 的极为强大的控制流运算符,它允许我们将一个值与一系列的模式相比较,并根据相匹配的模式执行相应代码。模式可由字面量、变量、通配符和许多其他内容构成;第 18 章会涉及到所有不同种类的模式以及它们的作用。match 的力量来源于模式的表现力以及编译器检查,它确保了所有可能的情况都得到处理。 成为一名开发者是我必须为之奋斗的梦想 | 张赫 (zhanghe.cool) Rust Programming Language (rust-lang.org)
- 程序员新闻 - Fedora Linux 37 正式发布
Fedora Linux 37 正式发布 成为一名开发者是我必须为之奋斗的梦想 | 张赫 (zhanghe.cool)
- Rust 程序设计 - 定义枚举
让我们看看一个需要诉诸于代码的场景,来考虑为何此时使用枚举更为合适且实用。假设我们要处理 IP 地址。目前被广泛使用的两个主要 IP 标准:IPv4(version four)和 IPv6(version six)。这是我们的程序可能会遇到的所有可能的 IP 地址类型:所以可以 枚举 出所有可能的值,这也正是此枚举名字的由来。 成为一名开发者是我必须为之奋斗的梦想 | 张赫 (zhanghe.cool) Rust Programming Language (rust-lang.org)
- Rust 程序设计 - 方法语法
方法 与函数类似:它们使用 fn 关键字和名称声明,可以拥有参数和返回值,同时包含在某处调用该方法时会执行的代码。不过方法与函数是不同的,因为它们在结构体的上下文中被定义(或者是枚举或 trait 对象的上下文,将分别在第 6 章和第 17 章讲解),并且它们第一个参数总是 self,它代表调用该方法的结构体实例。 成为一名开发者是我必须为之奋斗的梦想 | 张赫 (zhanghe.cool) Rust Programming Language (rust-lang.org)
- Rust程序设计 - 一个使用结构体的示例程序
为了理解何时会需要使用结构体,让我们编写一个计算长方形面积的程序。我们会从单独的变量开始,接着重构程序直到使用结构体替代他们为止。 使用 Cargo 新建一个叫做 rectangles 的二进制程序,它获取以像素为单位的长方形的宽度和高度,并计算出长方形的面积。 成为一名开发者是我必须为之奋斗的梦想 | 张赫 (zhanghe.cool) Rust Programming Language (rust-lang.org)
- Rust 程序设计 - 定义并实例化结构体
结构体和我们在“元组类型”章节论过的元组类似。和元组一样,结构体的每一部分可以是不同类型。但不同于元组,结构体需要命名各部分数据以便能清楚的表明其值的意义。由于有了这些名字,结构体比元组更灵活:不需要依赖顺序来指定或访问实例中的值。 成为一名开发者是我必须为之奋斗的梦想 | 张赫 (zhanghe.cool) Rust Programming Language (rust-lang.org)