 Hello 算法 1.1.0 Rust版structure)是计算机中组织和存储数据的方式,具有以下设计目标。 ‧ 空间占用尽量少,以节省计算机内存。 第 1 章 初识算法 hello‑algo.com 14 ‧ 数据操作尽可能快速,涵盖数据访问、添加、删除、更新等。 ‧ 提供简洁的数据表示和逻辑信息,以便算法高效运行。 数据结构设计是一个充满权衡的过程。如果想在某方面取得提升,往往需要在另一方面作出妥协。下面举两 个例子。 ‧ 链表相较于数组,在数 n-1, n while i <= n { res += i; i += 1; // 更新条件变量 } res } while 循环比 for 循环的自由度更高。在 while 循环中,我们可以自由地设计条件变量的初始化和更新步 骤。 例如在以下代码中,条件变量 ? 每轮进行两次更新,这种情况就不太方便用 for 循环实现: 第 2 章 复杂度分析 hello‑algo.com iteration.rs === /* while 循环(两次更新) */ fn while_loop_ii(n: i32) -> i32 { let mut res = 0; let mut i = 1; // 初始化条件变量 // 循环求和 1, 4, 10, ... while i <= n { res += i; // 更新条件变量 i += 1; i *= 2; } res0 码力 | 388 页 | 18.50 MB | 1 年前3 Hello 算法 1.1.0 Rust版structure)是计算机中组织和存储数据的方式,具有以下设计目标。 ‧ 空间占用尽量少,以节省计算机内存。 第 1 章 初识算法 hello‑algo.com 14 ‧ 数据操作尽可能快速,涵盖数据访问、添加、删除、更新等。 ‧ 提供简洁的数据表示和逻辑信息,以便算法高效运行。 数据结构设计是一个充满权衡的过程。如果想在某方面取得提升,往往需要在另一方面作出妥协。下面举两 个例子。 ‧ 链表相较于数组,在数 n-1, n while i <= n { res += i; i += 1; // 更新条件变量 } res } while 循环比 for 循环的自由度更高。在 while 循环中,我们可以自由地设计条件变量的初始化和更新步 骤。 例如在以下代码中,条件变量 ? 每轮进行两次更新,这种情况就不太方便用 for 循环实现: 第 2 章 复杂度分析 hello‑algo.com iteration.rs === /* while 循环(两次更新) */ fn while_loop_ii(n: i32) -> i32 { let mut res = 0; let mut i = 1; // 初始化条件变量 // 循环求和 1, 4, 10, ... while i <= n { res += i; // 更新条件变量 i += 1; i *= 2; } res0 码力 | 388 页 | 18.50 MB | 1 年前3
 Hello 算法 1.2.0 简体中文 Rust 版操作方法,它具 有以下设计目标。 第 1 章 初识算法 www.hello‑algo.com 14 ‧ 空间占用尽量少,以节省计算机内存。 ‧ 数据操作尽可能快速,涵盖数据访问、添加、删除、更新等。 ‧ 提供简洁的数据表示和逻辑信息,以便算法高效运行。 数据结构设计是一个充满权衡的过程。如果想在某方面取得提升,往往需要在另一方面作出妥协。下面举两 个例子。 ‧ 链表相较于数组,在数 <= n { res += i; i += 1; // 更新条件变量 } res } while 循环比 for 循环的自由度更高。在 while 循环中,我们可以自由地设计条件变量的初始化和更新步 骤。 第 2 章 复杂度分析 www.hello‑algo.com 21 例如在以下代码中,条件变量 ? 每轮进行两次更新,这种情况就不太方便用 for 循环实现: // === File: iteration.rs === /* while 循环(两次更新) */ fn while_loop_ii(n: i32) -> i32 { let mut res = 0; let mut i = 1; // 初始化条件变量 // 循环求和 1, 4, 10, ... while i <= n { res += i; // 更新条件变量 i += 1; i *= 2; } res0 码力 | 387 页 | 18.51 MB | 10 月前3 Hello 算法 1.2.0 简体中文 Rust 版操作方法,它具 有以下设计目标。 第 1 章 初识算法 www.hello‑algo.com 14 ‧ 空间占用尽量少,以节省计算机内存。 ‧ 数据操作尽可能快速,涵盖数据访问、添加、删除、更新等。 ‧ 提供简洁的数据表示和逻辑信息,以便算法高效运行。 数据结构设计是一个充满权衡的过程。如果想在某方面取得提升,往往需要在另一方面作出妥协。下面举两 个例子。 ‧ 链表相较于数组,在数 <= n { res += i; i += 1; // 更新条件变量 } res } while 循环比 for 循环的自由度更高。在 while 循环中,我们可以自由地设计条件变量的初始化和更新步 骤。 第 2 章 复杂度分析 www.hello‑algo.com 21 例如在以下代码中,条件变量 ? 每轮进行两次更新,这种情况就不太方便用 for 循环实现: // === File: iteration.rs === /* while 循环(两次更新) */ fn while_loop_ii(n: i32) -> i32 { let mut res = 0; let mut i = 1; // 初始化条件变量 // 循环求和 1, 4, 10, ... while i <= n { res += i; // 更新条件变量 i += 1; i *= 2; } res0 码力 | 387 页 | 18.51 MB | 10 月前3
 Hello 算法 1.0.0 Rust版structure」是计算机中组织和存储数据的方式,具有以下设计目标。 ‧ 空间占用尽量少,以节省计算机内存。 第 1 章 初识算法 hello‑algo.com 14 ‧ 数据操作尽可能快速,涵盖数据访问、添加、删除、更新等。 ‧ 提供简洁的数据表示和逻辑信息,以便算法高效运行。 数据结构设计是一个充满权衡的过程。如果想在某方面取得提升,往往需要在另一方面作出妥协。下面举两 个例子。 ‧ 链表相较于数组,在数 i <= n { res += i; i += 1; // 更新条件变量 } res } while 循环比 for 循环的自由度更高。在 while 循环中,我们可以自由地设计条件变量的初始化和更新步 骤。 第 2 章 复杂度分析 hello‑algo.com 21 例如在以下代码中,条件变量 ? 每轮进行两次更新,这种情况就不太方便用 for 循环实现: // === File: iteration.rs === /* while 循环(两次更新) */ fn while_loop_ii(n: i32) -> i32 { let mut res = 0; let mut i = 1; // 初始化条件变量 // 循环求和 1, 4, 10, ... while i <= n { res += i; // 更新条件变量 i += 1; i *= 2; } res0 码力 | 383 页 | 17.61 MB | 1 年前3 Hello 算法 1.0.0 Rust版structure」是计算机中组织和存储数据的方式,具有以下设计目标。 ‧ 空间占用尽量少,以节省计算机内存。 第 1 章 初识算法 hello‑algo.com 14 ‧ 数据操作尽可能快速,涵盖数据访问、添加、删除、更新等。 ‧ 提供简洁的数据表示和逻辑信息,以便算法高效运行。 数据结构设计是一个充满权衡的过程。如果想在某方面取得提升,往往需要在另一方面作出妥协。下面举两 个例子。 ‧ 链表相较于数组,在数 i <= n { res += i; i += 1; // 更新条件变量 } res } while 循环比 for 循环的自由度更高。在 while 循环中,我们可以自由地设计条件变量的初始化和更新步 骤。 第 2 章 复杂度分析 hello‑algo.com 21 例如在以下代码中,条件变量 ? 每轮进行两次更新,这种情况就不太方便用 for 循环实现: // === File: iteration.rs === /* while 循环(两次更新) */ fn while_loop_ii(n: i32) -> i32 { let mut res = 0; let mut i = 1; // 初始化条件变量 // 循环求和 1, 4, 10, ... while i <= n { res += i; // 更新条件变量 i += 1; i *= 2; } res0 码力 | 383 页 | 17.61 MB | 1 年前3
 Comprehensive Rust(简体中文) 202412241 46.8 Checking Crates into Chromium Source Code . . . . . . . . . . . . . . . . . . 241 46.9 及时更新 Crate . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 242 46.10练习 . . . . . 的全部内容,从基本语法到泛型和错 误处理等高级主题。 如需查看课程的最新版本,请访问 https://google.github.io/comprehensive-rust/。如果您 在其他地方阅读,请在那里查看更新。 The course is also available as a PDF. 本课程的目标是教会你使用 Rust。假设你对 Rust 一无所知,本课程可以: • 帮助你全面理解 Rust 的语法和语言。 @jiyongp, @jooyunghan, and @namhyung. • 西班牙语版本译者:@deavid。 使用右上角的语言选择器切换语言。 未完成的翻译 还有很多语言版本仍在翻译中。以下是最近更新的翻译版本的链接: • 孟加拉语版本译者:@raselmandol。 • 法语版本译者:@KookaS 和@vcaen。 15 • 德语版本译者:@Throvn 和@ronaldfw。 • 日语版本译者:@CoinEZ-JPN0 码力 | 359 页 | 1.33 MB | 10 月前3 Comprehensive Rust(简体中文) 202412241 46.8 Checking Crates into Chromium Source Code . . . . . . . . . . . . . . . . . . 241 46.9 及时更新 Crate . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 242 46.10练习 . . . . . 的全部内容,从基本语法到泛型和错 误处理等高级主题。 如需查看课程的最新版本,请访问 https://google.github.io/comprehensive-rust/。如果您 在其他地方阅读,请在那里查看更新。 The course is also available as a PDF. 本课程的目标是教会你使用 Rust。假设你对 Rust 一无所知,本课程可以: • 帮助你全面理解 Rust 的语法和语言。 @jiyongp, @jooyunghan, and @namhyung. • 西班牙语版本译者:@deavid。 使用右上角的语言选择器切换语言。 未完成的翻译 还有很多语言版本仍在翻译中。以下是最近更新的翻译版本的链接: • 孟加拉语版本译者:@raselmandol。 • 法语版本译者:@KookaS 和@vcaen。 15 • 德语版本译者:@Throvn 和@ronaldfw。 • 日语版本译者:@CoinEZ-JPN0 码力 | 359 页 | 1.33 MB | 10 月前3
 Rust分布式账务系统 - 胡宇关于我们: Airwallex 从设计架构到实现细节 项目介绍 分布式账务系统 Fintech 互联网 正确性 bug= 资损 bug 不可怕,快速迭代 可靠性 丢数据 = 资损 允许数据丢失 性能 超低延迟 + 高吞吐 超高吞吐 交易日志 审计,监管 调试使用 分布式账务系统 Fintech 领域中的软件与互联网软件的不同 需求分析 支付处理: ● 转账 ● 冻资 / 解资 ● Marker 事务层 ○ 使用业务 id 进行路由 ○ 执行转账计划 ○ 分发账户变动请求 ● Auticuro 账户层 ○ 使用账户 id 进行分区 ○ 执行账户变动请求 ○ 更新账户余额 分布式账务系统 性能展示 8 vCPUs * 5 节点 SSD 磁盘 当 TPS = 10K 时, 延迟 P99 < 20ms 分布式账务系统 高吞吐,超低延迟 账户层: 处理被共识的 events ,更新状态机 (账户表) ○ 去重 & 更新余额 ○ 关键路径采用无锁单线程 账户层: Auticuro 分布式账务系统 1 2 3 4 ● 1. 接受转账请求,转换成 events ● 2. 将 events 送入 Raft 共识,等待 events 被多数节点保存 ● 3. 处理被共识的 events ,更新状态机 (账户表) ● 4.0 码力 | 27 页 | 12.60 MB | 1 年前3 Rust分布式账务系统 - 胡宇关于我们: Airwallex 从设计架构到实现细节 项目介绍 分布式账务系统 Fintech 互联网 正确性 bug= 资损 bug 不可怕,快速迭代 可靠性 丢数据 = 资损 允许数据丢失 性能 超低延迟 + 高吞吐 超高吞吐 交易日志 审计,监管 调试使用 分布式账务系统 Fintech 领域中的软件与互联网软件的不同 需求分析 支付处理: ● 转账 ● 冻资 / 解资 ● Marker 事务层 ○ 使用业务 id 进行路由 ○ 执行转账计划 ○ 分发账户变动请求 ● Auticuro 账户层 ○ 使用账户 id 进行分区 ○ 执行账户变动请求 ○ 更新账户余额 分布式账务系统 性能展示 8 vCPUs * 5 节点 SSD 磁盘 当 TPS = 10K 时, 延迟 P99 < 20ms 分布式账务系统 高吞吐,超低延迟 账户层: 处理被共识的 events ,更新状态机 (账户表) ○ 去重 & 更新余额 ○ 关键路径采用无锁单线程 账户层: Auticuro 分布式账务系统 1 2 3 4 ● 1. 接受转账请求,转换成 events ● 2. 将 events 送入 Raft 共识,等待 events 被多数节点保存 ● 3. 处理被共识的 events ,更新状态机 (账户表) ● 4.0 码力 | 27 页 | 12.60 MB | 1 年前3
 Rust 语言学习笔记语言的升级。只是升级频度高一些,这样的升级在 java 和 go 中 也普遍存在。go 中的感知稍微小一些。 每次升级都要更新相应的工具链。保证最新的编译器和链接器可以将新生成的 程序生成出来。 Rust 的包管理系统非常明显地体现了它的与众不同。 1.3 版本管理工具 作为一门更新快速的语言,rust 开发了专用的版本管理工具 rustup。 对于 go 而言,不需要对这些东西进行了解,只需要下载包安装到环境变量中即 rustup。rustup 功能如下: 1.管理安装多个官方版本的 Rust 二进制程序。 2.配置基于目录的 Rust 工具链。 3.安装和更新来自 Rust 的发布通道: nightly, beta 和 stable。 4.接收来自发布通道更新的通知。 5.从官方安装历史版本的 nightly 工具链。 6.通过指定 stable 版本来安装。 7.安装额外的 std 用于交叉编译。 常用命令: 1.rustup default Rust 语言学习笔记语言的升级。只是升级频度高一些,这样的升级在 java 和 go 中 也普遍存在。go 中的感知稍微小一些。 每次升级都要更新相应的工具链。保证最新的编译器和链接器可以将新生成的 程序生成出来。 Rust 的包管理系统非常明显地体现了它的与众不同。 1.3 版本管理工具 作为一门更新快速的语言,rust 开发了专用的版本管理工具 rustup。 对于 go 而言,不需要对这些东西进行了解,只需要下载包安装到环境变量中即 rustup。rustup 功能如下: 1.管理安装多个官方版本的 Rust 二进制程序。 2.配置基于目录的 Rust 工具链。 3.安装和更新来自 Rust 的发布通道: nightly, beta 和 stable。 4.接收来自发布通道更新的通知。 5.从官方安装历史版本的 nightly 工具链。 6.通过指定 stable 版本来安装。 7.安装额外的 std 用于交叉编译。 常用命令: 1.rustup default- 配置默认工具链。 2. rustup show 显示当前安装的工具链信息。 3. rustup update 检查安装更新。 4. rustup toolchain [SUBCOMMAND] 配置工具链 更多细节请查看 rustprimer。 1.4 rust 编译运行 ps: cargo build 普通编译 0 码力 | 117 页 | 2.24 MB | 1 年前3
 Rust 程序设计语言 简体中文版 1.85.0Rust 仍不能使用,有许多地方可以求助。您可以在社区页面查看如何与其他 Rustaceans(Rust 用户的称号,有自嘲意味)联系。 更新与卸载 通过 rustup 安装了 Rust 之后,更新到最新版本就很简单了。只需要在您对应的命令行中运行 如下更新脚本: $ rustup update 若要卸载 Rust 和 rustup,请在命令行中运行如下卸载脚本: 13/562Rust 程序设计语言 cargo build 关于更多 Cargo 的信息,请查阅 其文档。 总结 你已经准备好开启 Rust 之旅了!在本章中,你学习了如何: • 使用 rustup 安装最新稳定版的 Rust • 更新到新版的 Rust • 打开本地安装的文档 • 直接通过 rustc 编写并运行 Hello, world! 程序 • 使用 Cargo 创建并运行新项目 是时候通过构建更实质性的程序来熟悉读写 Rust 从 registry 上获取所有包的最新版本信息,这是一份来自 Crates.io 的数据副本。Crates.io 是 Rust 生态系统中,人们发布其开源 Rust 项目的平台,供 他人使用。 在更新完 registry 后,Cargo 检查 [dependencies] section 并下载列表中包含但还未下载的 crate。本例中,虽然只声明了 rand 一个依赖,然而 Cargo 还是额外获取了0 码力 | 562 页 | 3.23 MB | 26 天前3 Rust 程序设计语言 简体中文版 1.85.0Rust 仍不能使用,有许多地方可以求助。您可以在社区页面查看如何与其他 Rustaceans(Rust 用户的称号,有自嘲意味)联系。 更新与卸载 通过 rustup 安装了 Rust 之后,更新到最新版本就很简单了。只需要在您对应的命令行中运行 如下更新脚本: $ rustup update 若要卸载 Rust 和 rustup,请在命令行中运行如下卸载脚本: 13/562Rust 程序设计语言 cargo build 关于更多 Cargo 的信息,请查阅 其文档。 总结 你已经准备好开启 Rust 之旅了!在本章中,你学习了如何: • 使用 rustup 安装最新稳定版的 Rust • 更新到新版的 Rust • 打开本地安装的文档 • 直接通过 rustc 编写并运行 Hello, world! 程序 • 使用 Cargo 创建并运行新项目 是时候通过构建更实质性的程序来熟悉读写 Rust 从 registry 上获取所有包的最新版本信息,这是一份来自 Crates.io 的数据副本。Crates.io 是 Rust 生态系统中,人们发布其开源 Rust 项目的平台,供 他人使用。 在更新完 registry 后,Cargo 检查 [dependencies] section 并下载列表中包含但还未下载的 crate。本例中,虽然只声明了 rand 一个依赖,然而 Cargo 还是额外获取了0 码力 | 562 页 | 3.23 MB | 26 天前3
 唐刚 - Use Rust to Develop the Decentralized Open Data Application - RustChinaConf2023Data Application Mike Tang daogangtang@gmail.com @daogangtang 2023-06-08 ➔ 裁员 ➔ 互联网格局定型 ➔ 平台倒闭,数据丢失 这是一个什么时代? 互联网的终局 创业 -> 种子 -> 天使 -> A -> B -> C -> … -> IPO 创业的目的是? ➔ 赚钱盈利。建立一个好的平台,尽量粘住用户0 码力 | 30 页 | 2.53 MB | 1 年前3 唐刚 - Use Rust to Develop the Decentralized Open Data Application - RustChinaConf2023Data Application Mike Tang daogangtang@gmail.com @daogangtang 2023-06-08 ➔ 裁员 ➔ 互联网格局定型 ➔ 平台倒闭,数据丢失 这是一个什么时代? 互联网的终局 创业 -> 种子 -> 天使 -> A -> B -> C -> … -> IPO 创业的目的是? ➔ 赚钱盈利。建立一个好的平台,尽量粘住用户0 码力 | 30 页 | 2.53 MB | 1 年前3
 新一代分布式高性能图数据库的构建 - 沈游人其 他客户行为特征进行机器学习训练 图卷积神经网络 • 对图结构数据进行卷积计算 • 通过已有的企业数据,通过 GCN 进行半监督学习和分 类,预测企业的违约概率 传统的关系型数据库的存储方式丢失了事物之间的关系信息 Relational Table Real World Multi-Context is Preserved with Graph Analytics Source: KDnuggets0 码力 | 38 页 | 24.68 MB | 1 年前3 新一代分布式高性能图数据库的构建 - 沈游人其 他客户行为特征进行机器学习训练 图卷积神经网络 • 对图结构数据进行卷积计算 • 通过已有的企业数据,通过 GCN 进行半监督学习和分 类,预测企业的违约概率 传统的关系型数据库的存储方式丢失了事物之间的关系信息 Relational Table Real World Multi-Context is Preserved with Graph Analytics Source: KDnuggets0 码力 | 38 页 | 24.68 MB | 1 年前3
 Hello 算法 1.2.0 繁体中文 Rust 版作方法,它具 有以下設計目標。 第 1 章 初識演算法 www.hello‑algo.com 14 ‧ 空間佔用儘量少,以節省計算機記憶體。 ‧ 資料操作儘可能快速,涵蓋資料訪問、新增、刪除、更新等。 ‧ 提供簡潔的資料表示和邏輯資訊,以便演算法高效執行。 資料結構設計是一個充滿權衡的過程。如果想在某方面取得提升,往往需要在另一方面作出妥協。下面舉兩 個例子。 ‧ 鏈結串列相較於陣列 <= n { res += i; i += 1; // 更新條件變數 } res } while 迴圈比 for 迴圈的自由度更高。在 while 迴圈中,我們可以自由地設計條件變數的初始化和更新步 驟。 第 2 章 複雜度分析 www.hello‑algo.com 21 例如在以下程式碼中,條件變數 ? 每輪進行兩次更新,這種情況就不太方便用 for 迴圈實現: // === File: iteration.rs === /* while 迴圈(兩次更新) */ fn while_loop_ii(n: i32) -> i32 { let mut res = 0; let mut i = 1; // 初始化條件變數 // 迴圈求和 1, 4, 10, ... while i <= n { res += i; // 更新條件變數 i += 1; i *= 2; } res0 码力 | 388 页 | 18.82 MB | 10 月前3 Hello 算法 1.2.0 繁体中文 Rust 版作方法,它具 有以下設計目標。 第 1 章 初識演算法 www.hello‑algo.com 14 ‧ 空間佔用儘量少,以節省計算機記憶體。 ‧ 資料操作儘可能快速,涵蓋資料訪問、新增、刪除、更新等。 ‧ 提供簡潔的資料表示和邏輯資訊,以便演算法高效執行。 資料結構設計是一個充滿權衡的過程。如果想在某方面取得提升,往往需要在另一方面作出妥協。下面舉兩 個例子。 ‧ 鏈結串列相較於陣列 <= n { res += i; i += 1; // 更新條件變數 } res } while 迴圈比 for 迴圈的自由度更高。在 while 迴圈中,我們可以自由地設計條件變數的初始化和更新步 驟。 第 2 章 複雜度分析 www.hello‑algo.com 21 例如在以下程式碼中,條件變數 ? 每輪進行兩次更新,這種情況就不太方便用 for 迴圈實現: // === File: iteration.rs === /* while 迴圈(兩次更新) */ fn while_loop_ii(n: i32) -> i32 { let mut res = 0; let mut i = 1; // 初始化條件變數 // 迴圈求和 1, 4, 10, ... while i <= n { res += i; // 更新條件變數 i += 1; i *= 2; } res0 码力 | 388 页 | 18.82 MB | 10 月前3
共 19 条
- 1
- 2













