Rust 程序设计语言简体中文版
.......................... 276 12.3. 重构以改进模块化与错误处理 ................................................................................... 278 12.4. 采用测试驱动开发完善库的功能 ........................................ 将错误信息输出到标准错误而不是标准输出 ............................................................. 316 13. Rust 中的函数式语言功能:迭代器与闭包 ...................................................................... 318 13.1. 闭包:可以捕获其环境的匿名函数 ........................................................................................ 329 13.3. 改进之前的 I/O 项目 ........................................................................................0 码力 | 600 页 | 12.99 MB | 1 年前3Rust 程序设计语言 简体中文版 1.85.0
. . . . . . . 253 12.3. 重构以改进模块化与错误处理 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 255 12.4. 采用测试驱动开发完善库的功能 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 289 13.3. 改进之前的 I/O 项目 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 简体中文版.pdf) 本书也有由 No Starch Press 出版的纸质版和电子版。 🚨 想要具有互动性的学习体验吗?试试 Rust Book 的另一个版本,其中包括测验、 高亮、可视化等功能:https://rust-book.cs.brown.edu 5/562Rust 程序设计语言 简体中文版 前言 Rust 程序设计语言的本质实际在于 赋能(empowerment):无论你现在编写的是何种代码,0 码力 | 562 页 | 3.23 MB | 10 天前3Rust 语言学习笔记
对于 go 而言,不需要对这些东西进行了解,只需要下载包安装到环境变量中即 可。 而 rust 的开发中经常会遇到配置不同的 toolchain 等需求,因此官方开发了 rustup。rustup 功能如下: 1.管理安装多个官方版本的 Rust 二进制程序。 2.配置基于目录的 Rust 工具链。 3.安装和更新来自 Rust 的发布通道: nightly, beta 和 stable。 中条件判断必须是 bool 类型,不能写出 if 5 这种判断条件。 2.2.2 match 语句 Rust 中没有类似于 C 的 switch 关键字,但它有用于模式匹配的 match, 能实现同样的功能,并且强大太多。 match 的使用非常简单,举例如下: let x = 5; match x { 1 => { println!("one") } y.clone(); println!("{:?}", y); } 4.3.2 trait 与内置类型 内置类型如:i32, i64 等也可以添加 trait 实现,为其定制一些功能: trait HasArea { fn area(&self) -> f64; } impl HasArea for i32 { fn area(&self) ->0 码力 | 117 页 | 2.24 MB | 1 年前3Comprehensive Rust(简体中文) 202412
决方案,例如告诉大家在标准库的什么位置可以找到 相关信息。 以上就是全部事项,祝你授课顺利!希望你能像我们一样享受其中的乐趣! 欢迎你在课后提供反馈,以帮助我们不断改进课程。我们非常期待了解哪些方面做得不错,哪些方面还需 要改进。同时非常欢迎学生们向我们发送反馈! 1.1 课程结构 本页供课程讲师使用。 12 Rust 基础 前四天的内容是 Rust 基础。这几天的课程节奏很快,内容也很丰富! 之后,你应当配置你的编辑器或 IDE 以开始使用 Rust。大多数编辑器使用了 rust-analyzer。 它为 VS Code、Emacs、Vim/Neovim 及其他许多编辑器提供了自动补全及定义跳转的功能。同样也可 以使用 RustRover IDE。 • 在 Debian/Ubuntu 上,你也可以通过 apt 安装 Cargo、Rust 源代码和 Rust 格式化工具。但是, 这样会得到一个过时的 据需要让你在这些版本之间切换。 关键点: • Rust 有一个快速发布时间表,每六周就会发布一次新版本。新版本保持与旧版本的向后兼容性,并 添加新功能。 17 • 共有三个发布阶段:“稳定版(stable)”、 “测试版(beta)”和“夜间版(nightly)”。 • 新功能会先在“夜间版”上测试, “测试版”会每六周转为“稳定版”。 • 依赖关系也可以通过其他 registry、git 及文件夹等解析。0 码力 | 359 页 | 1.33 MB | 10 月前3简谈 Rust 与国密 TLS - 王江桐
com/article/95.html 国密套件总览 List of Shangmi Cryptography Rust China Conf 2022 – 2023, Shanghai, China 算法 算法标准 功能 类型 安全位数 (bit) 对应算法 是否公开 应用 Sm1 / 分组加解密 对称加 密 128 AES128 否,仅以 IP 核的形 式存在于芯片中 智能 IC 卡、智能密码钥匙、加 SM2 Rust China Conf 2022 – 2023, Shanghai, China • SM2 为椭圆曲线(ECC)公钥加密算法,非对称加密,提 供加解密、数字签名、证书生成、密钥交换功能。由于以上 用例,也常用于区块链或网络安全密码协议,如SSL/TLS、 VPN。 • 保证数据机密性、真实性和完整性。 • SM2 算法和 RSA 算法都是公钥加密算法,SM2 算法是一 种更先 2022 – 2023, Shanghai, China • SM3 为密码杂凑算法,采用密码散列(hash)函数标准,用于替代 MD5/SHA-1/SHA-2 等国际 算法,是在 SHA-256 基础上改进实现的一种算法,消息分组长度为 512 位,摘要值长度为 256 位,其中使用了异或、模、模加、移位、与、或、非运算,由填充、迭代过程、消息扩展和压缩 函数所构成。 • 保证信息的完整性。 •0 码力 | 44 页 | 3.70 MB | 1 年前3Hello 算法 1.1.0 Rust版
淘宝订单。购物者下单后,订单将加入队列中,系统随后会根据顺序处理队列中的订单。在双十一期 间,短时间内会产生海量订单,高并发成为工程师们需要重点攻克的问题。 ‧ 各类待办事项。任何需要实现“先来后到”功能的场景,例如打印机的任务队列、餐厅的出餐队列等, 队列在这些场景中可以有效地维护处理顺序。 5.3 双向队列 在队列中,我们仅能删除头部元素或在尾部添加元素。如图 5‑7 所示,双向队列(double‑ended 实现另一个对称方向 的操作。为此,我们采用“双向链表”作为双向队列的底层数据结构。 如图 5‑8 所示,我们将双向链表的头节点和尾节点视为双向队列的队首和队尾,同时实现在两端添加和删除 节点的功能。 图 5‑8 基于链表实现双向队列的入队出队操作 实现代码如下所示: 第 5 章 栈与队列 hello‑algo.com 107 // === File: linkedlist_deque 这两者的所有应用场景,同时提供更高的自由度。 我们知道,软件的“撤销”功能通常使用栈来实现:系统将每次更改操作 push 到栈中,然后通过 pop 实现撤 销。然而,考虑到系统资源的限制,软件通常会限制撤销的步数(例如仅允许保存 50 步)。当栈的长度超过 50 时,软件需要在栈底(队首)执行删除操作。但栈无法实现该功能,此时就需要使用双向队列来替代栈。请 注意,“撤销”的核心逻辑仍然遵循栈0 码力 | 388 页 | 18.50 MB | 1 年前3Hello 算法 1.2.0 简体中文 Rust 版
淘宝订单。购物者下单后,订单将加入队列中,系统随后会根据顺序处理队列中的订单。在双十一期 间,短时间内会产生海量订单,高并发成为工程师们需要重点攻克的问题。 ‧ 各类待办事项。任何需要实现“先来后到”功能的场景,例如打印机的任务队列、餐厅的出餐队列等, 队列在这些场景中可以有效地维护处理顺序。 5.3 双向队列 在队列中,我们仅能删除头部元素或在尾部添加元素。如图 5‑7 所示,双向队列(double‑ended 实现另一个对称方向 的操作。为此,我们采用“双向链表”作为双向队列的底层数据结构。 如图 5‑8 所示,我们将双向链表的头节点和尾节点视为双向队列的队首和队尾,同时实现在两端添加和删除 节点的功能。 图 5‑8 基于链表实现双向队列的入队出队操作 实现代码如下所示: 第 5 章 栈与队列 www.hello‑algo.com 107 // === File: linkedlist_deque 这两者的所有应用场景,同时提供更高的自由度。 我们知道,软件的“撤销”功能通常使用栈来实现:系统将每次更改操作 push 到栈中,然后通过 pop 实现撤 销。然而,考虑到系统资源的限制,软件通常会限制撤销的步数(例如仅允许保存 50 步)。当栈的长度超过 50 时,软件需要在栈底(队首)执行删除操作。但栈无法实现该功能,此时就需要使用双向队列来替代栈。请 注意,“撤销”的核心逻辑仍然遵循栈0 码力 | 387 页 | 18.51 MB | 10 月前3Hello 算法 1.0.0 Rust版
淘宝订单。购物者下单后,订单将加入队列中,系统随后会根据顺序处理队列中的订单。在双十一期 间,短时间内会产生海量订单,高并发成为工程师们需要重点攻克的问题。 ‧ 各类待办事项。任何需要实现“先来后到”功能的场景,例如打印机的任务队列、餐厅的出餐队列等, 队列在这些场景中可以有效地维护处理顺序。 5.3 双向队列 在队列中,我们仅能删除头部元素或在尾部添加元素。如图 5‑7 所示,「双向队列 double‑ended 实现另一个对称方向 的操作。为此,我们采用“双向链表”作为双向队列的底层数据结构。 如图 5‑8 所示,我们将双向链表的头节点和尾节点视为双向队列的队首和队尾,同时实现在两端添加和删除 节点的功能。 图 5‑8 基于链表实现双向队列的入队出队操作 实现代码如下所示: 第 5 章 栈与队列 hello‑algo.com 107 // === File: linkedlist_deque 栈与队列 hello‑algo.com 114 我们知道,软件的“撤销”功能通常使用栈来实现:系统将每次更改操作 push 到栈中,然后通过 pop 实现撤 销。然而,考虑到系统资源的限制,软件通常会限制撤销的步数(例如仅允许保存 50 步)。当栈的长度超过 50 时,软件需要在栈底(队首)执行删除操作。但栈无法实现该功能,此时就需要使用双向队列来替代栈。请 注意,“撤销”的核心逻辑仍然遵循栈0 码力 | 383 页 | 17.61 MB | 1 年前3秘猿先锋-文愿-Axon 应用链框架的 Rust 开发实践
数据库) 7. Executor 主要模块 • 高复杂性,组件和子系统较多,相互依赖和交互,整体结构和逻辑非常复杂,开发、 测试、调试难度大 • 可维护性,开发完成后,各个模块需要维护、升级和改进 • 可扩展性 • 高性能 • 高并发 • 高可靠性 • 代码管理 • … 大型项目的开发难点 ■ 抽象 ■ 便于协作开发 ■ 易于测试 优点 Mempool Traits0 码力 | 32 页 | 3.63 MB | 1 年前3在Solana合约链实现IBC协议跨链互操作 - 苏胤榕
- 单个签名肯定是不安全的,需要引入多个签名的方案, - 但是多个签名也是会出现内部作恶的,虽然是通过Dao选举出来的, 通过多个签名成员不会作恶保证。 - 改进方案,通过引入签名人池,有资格签名的人进入签名人池,之 后通过合约随机选取部分签名人,只要这一部分签名人的1/3即可。这种方法 保证了随机公平性(这里的公平性需要更好的随机算法实现)。创新的核心就0 码力 | 29 页 | 3.05 MB | 1 年前3
共 27 条
- 1
- 2
- 3