 Rust 程序设计语言 简体中文版 1.85.0. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 253 12.3. 重构以改进模块化与错误处理 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 289 13.3. 改进之前的 I/O 项目 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 查 看其它安装选项。 接下来的步骤会安装最新的稳定版 Rust 编译器。Rust 的稳定性确保本书所有示例在最新版本 的 Rust 中能够继续编译。不同版本的输出可能略有不同,因为 Rust 经常改进错误信息和警 告。也就是说,任何通过这些步骤安装的最新稳定版 Rust,都应该能正常运行本书中的内容。 命令行标记 本章和全书中,我们会展示一些在终端中使用的命令。所有需要输入到终端的行都以 $0 码力 | 562 页 | 3.23 MB | 26 天前3 Rust 程序设计语言 简体中文版 1.85.0. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 253 12.3. 重构以改进模块化与错误处理 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 289 13.3. 改进之前的 I/O 项目 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 查 看其它安装选项。 接下来的步骤会安装最新的稳定版 Rust 编译器。Rust 的稳定性确保本书所有示例在最新版本 的 Rust 中能够继续编译。不同版本的输出可能略有不同,因为 Rust 经常改进错误信息和警 告。也就是说,任何通过这些步骤安装的最新稳定版 Rust,都应该能正常运行本书中的内容。 命令行标记 本章和全书中,我们会展示一些在终端中使用的命令。所有需要输入到终端的行都以 $0 码力 | 562 页 | 3.23 MB | 26 天前3
 Rust 程序设计语言简体中文版..................................................................................... 276 12.3. 重构以改进模块化与错误处理 ................................................................................... 278 12 ........................................................................................ 329 13.3. 改进之前的 I/O 项目 ........................................................................................ 的其他安装方法页面 查看其它安装选项。 接下来的步骤会安装最新的稳定版 Rust 编译器。Rust 的稳定性确保本书所有示例在最新版本 的 Rust 中能够继续编译。不同版本的输出可能略有不同,因为 Rust 经常改进错误信息和警 告。也就是说,任何通过这些步骤安装的最新稳定版 Rust,都应该能正常运行本书中的内容。 命令行标记 本章和全书中,我们会展示一些在终端中使用的命令。所有需要输入到终端的行都以 $0 码力 | 600 页 | 12.99 MB | 1 年前3 Rust 程序设计语言简体中文版..................................................................................... 276 12.3. 重构以改进模块化与错误处理 ................................................................................... 278 12 ........................................................................................ 329 13.3. 改进之前的 I/O 项目 ........................................................................................ 的其他安装方法页面 查看其它安装选项。 接下来的步骤会安装最新的稳定版 Rust 编译器。Rust 的稳定性确保本书所有示例在最新版本 的 Rust 中能够继续编译。不同版本的输出可能略有不同,因为 Rust 经常改进错误信息和警 告。也就是说,任何通过这些步骤安装的最新稳定版 Rust,都应该能正常运行本书中的内容。 命令行标记 本章和全书中,我们会展示一些在终端中使用的命令。所有需要输入到终端的行都以 $0 码力 | 600 页 | 12.99 MB | 1 年前3
 简谈 Rust 与国密 TLS - 王江桐2022 – 2023, Shanghai, China • SM3 为密码杂凑算法,采用密码散列(hash)函数标准,用于替代 MD5/SHA-1/SHA-2 等国际 算法,是在 SHA-256 基础上改进实现的一种算法,消息分组长度为 512 位,摘要值长度为 256 位,其中使用了异或、模、模加、移位、与、或、非运算,由填充、迭代过程、消息扩展和压缩 函数所构成。 • 保证信息的完整性。 • SM3 / 4 性能优于 GmSSL; • TLS 由于与 GmSSL 支持的部分算法不同,仅对比了 TLS 1.2 应用数据传输性能,在 x86 架构下 优于或持平 GmSSL ; • 未来仍会持续优化,或计划开源。 Thank you! 参考 References Rust China Conf 2022 – 2023, Shanghai, China • Transport Layer0 码力 | 44 页 | 3.70 MB | 1 年前3 简谈 Rust 与国密 TLS - 王江桐2022 – 2023, Shanghai, China • SM3 为密码杂凑算法,采用密码散列(hash)函数标准,用于替代 MD5/SHA-1/SHA-2 等国际 算法,是在 SHA-256 基础上改进实现的一种算法,消息分组长度为 512 位,摘要值长度为 256 位,其中使用了异或、模、模加、移位、与、或、非运算,由填充、迭代过程、消息扩展和压缩 函数所构成。 • 保证信息的完整性。 • SM3 / 4 性能优于 GmSSL; • TLS 由于与 GmSSL 支持的部分算法不同,仅对比了 TLS 1.2 应用数据传输性能,在 x86 架构下 优于或持平 GmSSL ; • 未来仍会持续优化,或计划开源。 Thank you! 参考 References Rust China Conf 2022 – 2023, Shanghai, China • Transport Layer0 码力 | 44 页 | 3.70 MB | 1 年前3
 Comprehensive Rust(简体中文) 202412决方案,例如告诉大家在标准库的什么位置可以找到 相关信息。 以上就是全部事项,祝你授课顺利!希望你能像我们一样享受其中的乐趣! 欢迎你在课后提供反馈,以帮助我们不断改进课程。我们非常期待了解哪些方面做得不错,哪些方面还需 要改进。同时非常欢迎学生们向我们发送反馈! 1.1 课程结构 本页供课程讲师使用。 12 Rust 基础 前四天的内容是 Rust 基础。这几天的课程节奏很快,内容也很丰富! || { panic!("oh no!"); }); println!("{result:?}"); } • 捕获异常;请勿尝试使用 catch_unwind 实现异常! • 如果服务器需要持续运行(即使是在请求发生崩溃的情况下),此方法十分有用。 • 如果您在 Cargo.toml 中设置了 panic = 'abort',此方法不会生效。 29.2 尝试运算符 Runtime errors Comprehensive Rust ! We hope you enjoyed it and that it was useful. 组织这门课程让我们收获了很多乐趣。本课程并非完美无缺,因此,如果您发现任何错误或有任何改进建 议,请在 GitHub 上与我们联系。我们期待收到您的宝贵意见。 352 第 68 部分 词汇表 本页面的词汇表提供了许多 Rust 术语的简要定义。同时提供翻译版本和英语原文的对应。0 码力 | 359 页 | 1.33 MB | 10 月前3 Comprehensive Rust(简体中文) 202412决方案,例如告诉大家在标准库的什么位置可以找到 相关信息。 以上就是全部事项,祝你授课顺利!希望你能像我们一样享受其中的乐趣! 欢迎你在课后提供反馈,以帮助我们不断改进课程。我们非常期待了解哪些方面做得不错,哪些方面还需 要改进。同时非常欢迎学生们向我们发送反馈! 1.1 课程结构 本页供课程讲师使用。 12 Rust 基础 前四天的内容是 Rust 基础。这几天的课程节奏很快,内容也很丰富! || { panic!("oh no!"); }); println!("{result:?}"); } • 捕获异常;请勿尝试使用 catch_unwind 实现异常! • 如果服务器需要持续运行(即使是在请求发生崩溃的情况下),此方法十分有用。 • 如果您在 Cargo.toml 中设置了 panic = 'abort',此方法不会生效。 29.2 尝试运算符 Runtime errors Comprehensive Rust ! We hope you enjoyed it and that it was useful. 组织这门课程让我们收获了很多乐趣。本课程并非完美无缺,因此,如果您发现任何错误或有任何改进建 议,请在 GitHub 上与我们联系。我们期待收到您的宝贵意见。 352 第 68 部分 词汇表 本页面的词汇表提供了许多 Rust 术语的简要定义。同时提供翻译版本和英语原文的对应。0 码力 | 359 页 | 1.33 MB | 10 月前3
 Hello 算法 1.1.0 Rust版和 E. M. Landis 在 论 文 “An algorithm for the organization of information”中提出了 AVL 树。论文中详细描述了一系列操作,确保在持续添加和删除节点后,AVL 树不 会退化,从而使得各种操作的时间复杂度保持在 ?(log ?) 级别。换句话说,在需要频繁进行增删查改操作 的场景中,AVL 树能始终保持高效的数据操作性能,具有很好的应用价值。 ) 。该方法的效率很高,当 ? 较小时,时间复杂度趋向 ?(?) ;当 ? 较大时,时间复杂度不会超过 ?(? log ?) 。 另外,该方法适用于动态数据流的使用场景。在不断加入数据时,我们可以持续维护堆内的元素,从而实现 最大的 ? 个元素的动态更新。 8.4 小结 1. 重点回顾 ‧ 堆是一棵完全二叉树,根据成立条件可分为大顶堆和小顶堆。大(小)顶堆的堆顶元素是最大(小)的。 第 不适合数据量过大的情况,因为哈希表需要额外空间来最大程度地减少冲突,从而提供良好的查询性 能。 树查找 ‧ 适用于海量数据,因为树节点在内存中是分散存储的。 ‧ 适合需要维护有序数据或范围查找的场景。 ‧ 在持续增删节点的过程中,二叉搜索树可能产生倾斜,时间复杂度劣化至 ?(?) 。 ‧ 若使用 AVL 树或红黑树,则各项操作可在 ?(log ?) 效率下稳定运行,但维护树平衡的操作会增加额 外的开销。0 码力 | 388 页 | 18.50 MB | 1 年前3 Hello 算法 1.1.0 Rust版和 E. M. Landis 在 论 文 “An algorithm for the organization of information”中提出了 AVL 树。论文中详细描述了一系列操作,确保在持续添加和删除节点后,AVL 树不 会退化,从而使得各种操作的时间复杂度保持在 ?(log ?) 级别。换句话说,在需要频繁进行增删查改操作 的场景中,AVL 树能始终保持高效的数据操作性能,具有很好的应用价值。 ) 。该方法的效率很高,当 ? 较小时,时间复杂度趋向 ?(?) ;当 ? 较大时,时间复杂度不会超过 ?(? log ?) 。 另外,该方法适用于动态数据流的使用场景。在不断加入数据时,我们可以持续维护堆内的元素,从而实现 最大的 ? 个元素的动态更新。 8.4 小结 1. 重点回顾 ‧ 堆是一棵完全二叉树,根据成立条件可分为大顶堆和小顶堆。大(小)顶堆的堆顶元素是最大(小)的。 第 不适合数据量过大的情况,因为哈希表需要额外空间来最大程度地减少冲突,从而提供良好的查询性 能。 树查找 ‧ 适用于海量数据,因为树节点在内存中是分散存储的。 ‧ 适合需要维护有序数据或范围查找的场景。 ‧ 在持续增删节点的过程中,二叉搜索树可能产生倾斜,时间复杂度劣化至 ?(?) 。 ‧ 若使用 AVL 树或红黑树,则各项操作可在 ?(log ?) 效率下稳定运行,但维护树平衡的操作会增加额 外的开销。0 码力 | 388 页 | 18.50 MB | 1 年前3
 Hello 算法 1.2.0 简体中文 Rust 版和 E. M. Landis 在 论 文 “An algorithm for the organization of information”中提出了 AVL 树。论文中详细描述了一系列操作,确保在持续添加和删除节点后,AVL 树不 会退化,从而使得各种操作的时间复杂度保持在 ?(log ?) 级别。换句话说,在需要频繁进行增删查改操作 的场景中,AVL 树能始终保持高效的数据操作性能,具有很好的应用价值。 ) 。该方法的效率很高,当 ? 较小时,时间复杂度趋向 ?(?) ;当 ? 较大时,时间复杂度不会超过 ?(? log ?) 。 另外,该方法适用于动态数据流的使用场景。在不断加入数据时,我们可以持续维护堆内的元素,从而实现 最大的 ? 个元素的动态更新。 8.4 小结 1. 重点回顾 ‧ 堆是一棵完全二叉树,根据成立条件可分为大顶堆和小顶堆。大(小)顶堆的堆顶元素是最大(小)的。 第 不适合数据量过大的情况,因为哈希表需要额外空间来最大程度地减少冲突,从而提供良好的查询性 能。 树查找 ‧ 适用于海量数据,因为树节点在内存中是分散存储的。 ‧ 适合需要维护有序数据或范围查找的场景。 ‧ 在持续增删节点的过程中,二叉搜索树可能产生倾斜,时间复杂度劣化至 ?(?) 。 ‧ 若使用 AVL 树或红黑树,则各项操作可在 ?(log ?) 效率下稳定运行,但维护树平衡的操作会增加额 外的开销。0 码力 | 387 页 | 18.51 MB | 10 月前3 Hello 算法 1.2.0 简体中文 Rust 版和 E. M. Landis 在 论 文 “An algorithm for the organization of information”中提出了 AVL 树。论文中详细描述了一系列操作,确保在持续添加和删除节点后,AVL 树不 会退化,从而使得各种操作的时间复杂度保持在 ?(log ?) 级别。换句话说,在需要频繁进行增删查改操作 的场景中,AVL 树能始终保持高效的数据操作性能,具有很好的应用价值。 ) 。该方法的效率很高,当 ? 较小时,时间复杂度趋向 ?(?) ;当 ? 较大时,时间复杂度不会超过 ?(? log ?) 。 另外,该方法适用于动态数据流的使用场景。在不断加入数据时,我们可以持续维护堆内的元素,从而实现 最大的 ? 个元素的动态更新。 8.4 小结 1. 重点回顾 ‧ 堆是一棵完全二叉树,根据成立条件可分为大顶堆和小顶堆。大(小)顶堆的堆顶元素是最大(小)的。 第 不适合数据量过大的情况,因为哈希表需要额外空间来最大程度地减少冲突,从而提供良好的查询性 能。 树查找 ‧ 适用于海量数据,因为树节点在内存中是分散存储的。 ‧ 适合需要维护有序数据或范围查找的场景。 ‧ 在持续增删节点的过程中,二叉搜索树可能产生倾斜,时间复杂度劣化至 ?(?) 。 ‧ 若使用 AVL 树或红黑树,则各项操作可在 ?(log ?) 效率下稳定运行,但维护树平衡的操作会增加额 外的开销。0 码力 | 387 页 | 18.51 MB | 10 月前3
 Hello 算法 1.0.0 Rust版E. M. Landis 在 论 文 “An algorithm for the organization of information”中提出了「AVL 树」。论文中详细描述了一系列操作,确保在持续添加和删除节点后,AVL 树 不会退化,从而使得各种操作的时间复杂度保持在 ?(log ?) 级别。换句话说,在需要频繁进行增删查改操 作的场景中,AVL 树能始终保持高效的数据操作性能,具有很好的应用价值。 ) 。该方法的效率很高,当 ? 较小时,时间复杂度趋向 ?(?) ;当 ? 较大时,时间复杂度不会超过 ?(? log ?) 。 另外,该方法适用于动态数据流的使用场景。在不断加入数据时,我们可以持续维护堆内的元素,从而实现 最大的 ? 个元素的动态更新。 8.4 小结 1. 重点回顾 ‧ 堆是一棵完全二叉树,根据成立条件可分为大顶堆和小顶堆。大(小)顶堆的堆顶元素是最大(小)的。 第 不适合数据量过大的情况,因为哈希表需要额外空间来最大程度地减少冲突,从而提供良好的查询性 能。 树查找 ‧ 适用于海量数据,因为树节点在内存中是分散存储的。 ‧ 适合需要维护有序数据或范围查找的场景。 ‧ 在持续增删节点的过程中,二叉搜索树可能产生倾斜,时间复杂度劣化至 ?(?) 。 ‧ 若使用 AVL 树或红黑树,则各项操作可在 ?(log ?) 效率下稳定运行,但维护树平衡的操作会增加额 外的开销。0 码力 | 383 页 | 17.61 MB | 1 年前3 Hello 算法 1.0.0 Rust版E. M. Landis 在 论 文 “An algorithm for the organization of information”中提出了「AVL 树」。论文中详细描述了一系列操作,确保在持续添加和删除节点后,AVL 树 不会退化,从而使得各种操作的时间复杂度保持在 ?(log ?) 级别。换句话说,在需要频繁进行增删查改操 作的场景中,AVL 树能始终保持高效的数据操作性能,具有很好的应用价值。 ) 。该方法的效率很高,当 ? 较小时,时间复杂度趋向 ?(?) ;当 ? 较大时,时间复杂度不会超过 ?(? log ?) 。 另外,该方法适用于动态数据流的使用场景。在不断加入数据时,我们可以持续维护堆内的元素,从而实现 最大的 ? 个元素的动态更新。 8.4 小结 1. 重点回顾 ‧ 堆是一棵完全二叉树,根据成立条件可分为大顶堆和小顶堆。大(小)顶堆的堆顶元素是最大(小)的。 第 不适合数据量过大的情况,因为哈希表需要额外空间来最大程度地减少冲突,从而提供良好的查询性 能。 树查找 ‧ 适用于海量数据,因为树节点在内存中是分散存储的。 ‧ 适合需要维护有序数据或范围查找的场景。 ‧ 在持续增删节点的过程中,二叉搜索树可能产生倾斜,时间复杂度劣化至 ?(?) 。 ‧ 若使用 AVL 树或红黑树,则各项操作可在 ?(log ?) 效率下稳定运行,但维护树平衡的操作会增加额 外的开销。0 码力 | 383 页 | 17.61 MB | 1 年前3
 秘猿先锋-文愿-Axon 应用链框架的 Rust 开发实践数据库) 7. Executor 主要模块 • 高复杂性,组件和子系统较多,相互依赖和交互,整体结构和逻辑非常复杂,开发、 测试、调试难度大 • 可维护性,开发完成后,各个模块需要维护、升级和改进 • 可扩展性 • 高性能 • 高并发 • 高可靠性 • 代码管理 • … 大型项目的开发难点 ■ 抽象 ■ 便于协作开发 ■ 易于测试 优点 Mempool Traits0 码力 | 32 页 | 3.63 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 在Solana合约链实现IBC协议跨链互操作 - 苏胤榕- 单个签名肯定是不安全的,需要引入多个签名的方案, - 但是多个签名也是会出现内部作恶的,虽然是通过Dao选举出来的, 通过多个签名成员不会作恶保证。 - 改进方案,通过引入签名人池,有资格签名的人进入签名人池,之 后通过合约随机选取部分签名人,只要这一部分签名人的1/3即可。这种方法 保证了随机公平性(这里的公平性需要更好的随机算法实现)。创新的核心就0 码力 | 29 页 | 3.05 MB | 1 年前3
 Rust 语言学习笔记received); } 例如上述代码编译通过,但是在运行过程中会死锁。而 rust 的编译器无法识别 此类错误。Rust 对安全的理解是死锁不属于内存安全问题。 Rust 在并发上的改进是: 通过改进所有权和类型检查,Rust 很多并发错误都是 编译时 错误,而非运 行时错误。 更强大的编译器和类型检查排除了很多并发问题,但并不能解决所有并发问题。 所以在进行并发编程时仍然要小心谨慎。0 码力 | 117 页 | 2.24 MB | 1 年前3 Rust 语言学习笔记received); } 例如上述代码编译通过,但是在运行过程中会死锁。而 rust 的编译器无法识别 此类错误。Rust 对安全的理解是死锁不属于内存安全问题。 Rust 在并发上的改进是: 通过改进所有权和类型检查,Rust 很多并发错误都是 编译时 错误,而非运 行时错误。 更强大的编译器和类型检查排除了很多并发问题,但并不能解决所有并发问题。 所以在进行并发编程时仍然要小心谨慎。0 码力 | 117 页 | 2.24 MB | 1 年前3
共 12 条
- 1
- 2













