Comprehensive Rust(繁体中文)外,您也能獲得像 C 和 C++ 一樣快速可預期的成效 (無垃圾收集器),以及低階硬體的存取權限 (如有需要)。 4.3 Playground Rust Playground 支援以簡便方式執行精簡的 Rust 程式,也是本課程中範例和練習的基礎。不妨試著執 行 Rust Playground 開頭的「hello-world」程式。Playground 兼具以下幾項便利功能: • 在「Too 可以取消參照,進而消除 UAF (使用已釋放記憶體) 和其他類別的錯誤。不過,GC 會耗費執行階段 成本,且很難正確調整。 在許多情況下,Rust 的擁有權和借用模型效能都能媲美 C 語言,並在必要處精準分配及釋放,達成零成 本作業。Rust 也提供類似 C++ 智慧指標的工具。如有需要,您還可以使用參照計數等其他選項,而且甚至 還有第三方 Crate,可支援執行階段的垃圾收集作業 (本課程不會討論這部分)。 Err(err) => println!("Error: {err:?}"), } } thiserror • Error 衍生巨集是由 thiserror 提供,附有許多實用的屬性,有助於以精簡方式定義錯誤型別。 • std::error::Error 特徵會自動衍生。 • #[error] 的訊息則用於衍生 Display 特徵。 168 anyhow • anyhow::Error0 码力 | 358 页 | 1.41 MB | 11 月前3
Comprehensive Rust(繁体中文) 202406外,您也能獲得像 C 和 C++ 一樣快速可預期的成效 (無垃圾收集器),以及低階硬體的存取權限 (如有需要)。 4.3 Playground Rust Playground 支援以簡便方式執行精簡的 Rust 程式,也是本課程中範例和練習的基礎。不妨試著執 行 Rust Playground 開頭的「hello-world」程式。Playground 兼具以下幾項便利功能: • 在「Too 可以取消參照,進而消除 UAF (使用已釋放記憶體) 和其他類別的錯誤。不過,GC 會耗費執行階段 成本,且很難正確調整。 在許多情況下,Rust 的擁有權和借用模型效能都能媲美 C 語言,並在必要處精準分配及釋放,達成零成 本作業。Rust 也提供類似 C++ 智慧指標的工具。如有需要,您還可以使用參照計數等其他選項,而且甚至 還有第三方 Crate,可支援執行階段的垃圾收集作業 (本課程不會討論這部分)。 Err(err) => println!("Error: {err:?}"), } } thiserror • Error 衍生巨集是由 thiserror 提供,附有許多實用的屬性,有助於以精簡方式定義錯誤型別。 • std::error::Error 特徵會自動衍生。 • #[error] 的訊息則用於衍生 Display 特徵。 166 anyhow • anyhow::Error0 码力 | 356 页 | 1.41 MB | 1 年前3
Hello 算法 1.1.0 Rust版能力 强的人能够顺利将地雷逐个排掉,而基础不足的人很可能被炸得满头是包,并在挫折中步步退缩。通读教材 也是一种常见做法,但对于面向求职的人来说,毕业论文、投递简历、准备笔试和面试已经消耗了大部分精 力,啃厚重的书往往变成了一项艰巨的挑战。 如果你也面临类似的困扰,那么很幸运这本书“找”到了你。本书是我对这个问题给出的答案,即使不是最 优解,也至少是一次积极的尝试。本书虽然不足以让你直接拿到 古 代的计数方法和工具制作步骤等。随着文明的进步,算法逐渐变得更加精细和复杂。从巧夺天工的匠人技艺、 到解放生产力的工业产品、再到宇宙运行的科学规律,几乎每一件平凡或令人惊叹的事物背后,都隐藏着精 妙的算法思想。 同样,数据结构无处不在:大到社会网络,小到地铁线路,许多系统都可以建模为“图”;大到一个国家,小 到一个家庭,社会的主要组织形式呈现出“树”的特征;冬天的衣服就像“栈”,最先穿上的最后才能脱下; 展示了在实际应用中常见的哈希算法。 ‧ MD5 和 SHA‑1 已多次被成功攻击,因此它们被各类安全应用弃用。 ‧ SHA‑2 系列中的 SHA‑256 是最安全的哈希算法之一,仍未出现成功的攻击案例,因此常用在各类安全 应用与协议中。 ‧ SHA‑3 相较 SHA‑2 的实现开销更低、计算效率更高,但目前使用覆盖度不如 SHA‑2 系列。 表 6‑2 常见的哈希算法 MD5 SHA‑10 码力 | 388 页 | 18.50 MB | 1 年前3
Hello 算法 1.2.0 简体中文 Rust 版能力 强的人能够顺利将地雷逐个排掉,而基础不足的人很可能被炸得满头是包,并在挫折中步步退缩。通读教材 也是一种常见做法,但对于面向求职的人来说,毕业论文、投递简历、准备笔试和面试已经消耗了大部分精 力,啃厚重的书往往变成了一项艰巨的挑战。 如果你也面临类似的困扰,那么很幸运这本书“找”到了你。本书是我对这个问题给出的答案,即使不是最 优解,也至少是一次积极的尝试。本书虽然不足以让你直接拿到 古 代的计数方法和工具制作步骤等。随着文明的进步,算法逐渐变得更加精细和复杂。从巧夺天工的匠人技艺、 到解放生产力的工业产品、再到宇宙运行的科学规律,几乎每一件平凡或令人惊叹的事物背后,都隐藏着精 妙的算法思想。 同样,数据结构无处不在:大到社会网络,小到地铁线路,许多系统都可以建模为“图”;大到一个国家,小 到一个家庭,社会的主要组织形式呈现出“树”的特征;冬天的衣服就像“栈”,最先穿上的最后才能脱下; 展示了在实际应用中常见的哈希算法。 ‧ MD5 和 SHA‑1 已多次被成功攻击,因此它们被各类安全应用弃用。 ‧ SHA‑2 系列中的 SHA‑256 是最安全的哈希算法之一,仍未出现成功的攻击案例,因此常用在各类安全 应用与协议中。 ‧ SHA‑3 相较 SHA‑2 的实现开销更低、计算效率更高,但目前使用覆盖度不如 SHA‑2 系列。 表 6‑2 常见的哈希算法 MD5 SHA‑10 码力 | 387 页 | 18.51 MB | 10 月前3
Hello 算法 1.0.0 Rust版能力 强的人能够顺利将地雷逐个排掉,而基础不足的人很可能被炸得满头是包,并在挫折中步步退缩。通读教材 也是一种常见做法,但对于面向求职的人来说,毕业论文、投递简历、准备笔试和面试已经消耗了大部分精 力,啃厚重的书往往变成了一项艰巨的挑战。 如果你也面临类似的困扰,那么很幸运这本书“找”到了你。本书是我对这个问题给出的答案,即使不是最 优解,也至少是一次积极的尝试。本书虽然不足以让你直接拿到 展示了在实际应用中常见的哈希算法。 ‧ MD5 和 SHA‑1 已多次被成功攻击,因此它们被各类安全应用弃用。 ‧ SHA‑2 系列中的 SHA‑256 是最安全的哈希算法之一,仍未出现成功的攻击案例,因此常用在各类安全 应用与协议中。 ‧ SHA‑3 相较 SHA‑2 的实现开销更低、计算效率更高,但目前使用覆盖度不如 SHA‑2 系列。 表 6‑2 常见的哈希算法 MD5 SHA‑1 在链表表示下,二叉树的存储单元为节点 TreeNode ,节点之间通过指针相连接。上一节介绍了链表表示下的 二叉树的各项基本操作。 那么,我们能否用数组来表示二叉树呢?答案是肯定的。 7.3.1 表示完美二叉树 先分析一个简单案例。给定一棵完美二叉树,我们将所有节点按照层序遍历的顺序存储在一个数组中,则每 个节点都对应唯一的数组索引。 根据层序遍历的特性,我们可以推导出父节点索引与子节点索引之间的“映射公式”:若某节点的索引为0 码力 | 383 页 | 17.61 MB | 1 年前3
Hello 算法 1.2.0 繁体中文 Rust 版在不同資 料規模下的效率。 時間複雜度 ‧ 時間複雜度用於衡量演算法執行時間隨資料量增長的趨勢,可以有效評估演算法效率,但在某些情況 下可能失效,如在輸入的資料量較小或時間複雜度相同時,無法精確對比演算法效率的優劣。 ‧ 最差時間複雜度使用大 ? 符號表示,對應函式漸近上界,反映當 ? 趨向正無窮時,操作數量 ?(?) 的 增長級別。 ‧ 推算時間複雜度分為兩步,首先統計操作數量,然後判斷漸近上界。 展示了在實際應用中常見的雜湊演 算法。 ‧ MD5 和 SHA‑1 已多次被成功攻擊,因此它們被各類安全應用棄用。 ‧ SHA‑2 系列中的 SHA‑256 是最安全的雜湊演算法之一,仍未出現成功的攻擊案例,因此常用在各類安 全應用與協議中。 ‧ SHA‑3 相較 SHA‑2 的實現開銷更低、計算效率更高,但目前使用覆蓋度不如 SHA‑2 系列。 表 6‑2 常見的雜湊演算法 MD5 SHA‑1 TreeNode ,節點之間透過指標相連線。上一節介紹了鏈結串列 表示下的二元樹的各項基本操作。 那麼,我們能否用陣列來表示二元樹呢?答案是肯定的。 7.3.1 表示完美二元樹 先分析一個簡單案例。給定一棵完美二元樹,我們將所有節點按照層序走訪的順序儲存在一個陣列中,則每 個節點都對應唯一的陣列索引。 根據層序走訪的特性,我們可以推導出父節點索引與子節點索引之間的“對映公式”:若某節點的索引為0 码力 | 388 页 | 18.82 MB | 10 月前3
Rust 程序设计语言 简体中文版 1.85.0编译器的检查确保了增加功能和重构代码 时的稳定性,这与那些缺乏这些检查的语言中脆弱的祖传代码形成了鲜明对比,开发者往往不 敢去修改这些代码。通过追求零成本抽象(zero-cost abstractions)—— 将高级语言特性编 译成底层代码,并且与手写的代码运行速度同样快。Rust 努力确保代码又安全又快速。 这里提到的只是几个较大的受益群体,Rust 语言也希望能支持更多其他用户。总的来说, Rust 最重要的目标是消 并介绍分享代码库的最佳实践。第十五章讨论标准库提供的智能 指针以及相关的 trait。 8/562Rust 程序设计语言 简体中文版 第十六章将引导我们了解不同的并发编程模型,并探讨 Rust 如何帮助你无畏地进行多线程编 程。第十七章将在此基础上进一步探索 Rust 的 async 和 await 语法,以及它们所支持的轻量 级并发模型。 第十八章着眼于 Rust 风格与你可能比较熟悉的 OOP(面向对象编程)原则之间的比较。第十 call() 运行时 call 方 法中的 self 的值。 让我们看看标准库中的另一个非常常见且实用的枚举:Option。 Option 枚举及其相对于空值的优势 这一部分会分析一个 Option 的案例,Option 是标准库定义的另一个枚举。Option 类型应用广 泛因为它编码了一个非常普遍的场景,即一个值要么有值要么没值。 例如,如果请求一个非空列表的第一项,会得到一个值,如果请求一个空的列表,就什么也不0 码力 | 562 页 | 3.23 MB | 1 月前3
Rust 程序设计语言简体中文版编译器的检查确保了增加功能和重构代码 时的稳定性,这与那些缺乏这些检查的语言中脆弱的祖传代码形成了鲜明对比,开发者往往不 敢去修改这些代码。通过追求零成本抽象(zero-cost abstractions)—— 将高级语言特性编 译成底层代码,并且与手写的代码运行速度同样快。Rust 努力确保代码又安全又快速。 这里提到的只是几个较大的受益群体,Rust 语言也希望能支持更多其他用户。总的来说, Rust 最重要的目标是消 章讨论标准库提供的智能指 针以及相关的 Trait。 8/600 Rust 程序设计语言 简体中文版 第 16 章将引导我们了解不同的并发编程模型,并探讨 Rust 如何帮助你无畏地进行多线程编 程。第 17 章着眼于比较 Rust 风格与 OOP(面向对象编程)原则。 第 18 章介绍模式和模式匹配,它是在 Rust 程序中表达思想的有效方式。第 19 章是一个高级 主题大杂烩,包括不安全 设计上的权衡取舍。 仅仅使用 rustc 编译简单程序是没问题的,不过随着项目的增长,你可能需要管理你项目的 方方面面,并让代码易于分享。接下来,我们要介绍一个叫做 Cargo 的工具,它会帮助你编 写真实世界中的 Rust 程序。 18/600 Rust 程序设计语言 简体中文版 1 . 3 . H e l l o , C a r g o ! Hello0 码力 | 600 页 | 12.99 MB | 1 年前3
洛佳 组件化驱动、ROM运行环境与RustSBI在驱 动、环境和SBI接口的基础上,提供快速 实现具体引导流程的解决方案。 目录 组件化驱动 第 01 部分 什么是组件化驱动? 运 用 生 命 周 期 、可 变 性 等 最 新 的 编 程 语 言 理 论 成 果 ,构 造 适 应 开 发 需 求 的 驱 动 程 序 。可 结 合 过 程 宏 等 工 程 设 计 ,提 高 开 发 效 率 。 2 1 世 纪 的 驱 动 程 序 同 基 带 、 蓝 牙 、 U W B 等 , 合 理 编 写 频 域 、 功 率 等 软 件 限 制 , 结 合 开 源 协 议 栈 A I 加 速 外 设 包 括 自 研 A I 核 、 核 显 和 向 量 扩 展 等 , 编 写 专 用 驱 动 后 , 对 接 常 用 软 件 框 架 中 断 控 制 器 统 一 编 写 同 一 I P 核 或 S o C 设 计 的 控 用户编写,而是包含在宏生成的输出 代码中。 • 编译即可获得包含镜像头的固件包, 这是传统开发方法不具备的功能。 多核异构芯片的镜像融合(以BL808为例) 部 分 固 件 调 试 首 先 编 译 程 序 为 单 核 固 件 , 再 融 合 三 个 固 件 为 多 核 。 单 核 固 件 可 独 立 运 行 , 易 于 按 处 理 器 核 单 独 划 分 和 调 试 。 融 合 规 则0 码力 | 21 页 | 3.12 MB | 1 年前3
Await-Tree Async Rust 可观测性的灵丹妙药 - 赵梓淇回顾 Async Rust 的设计与痛点 1 Await-Tree 的 应用与真实案例 3 Await-Tree Async Rust 可观测性的灵丹妙药 Await-Tree 的 设计原理与实现 2 回顾 Async Rust 的设计与痛点 1 Await-Tree 的 应用与真实案例 3 Async Rust 的优势 • 异步编程的共同优势 • async/await Await-Tree Async Rust 可观测性的灵丹妙药 Await-Tree 的 设计原理与实现 2 回顾 Async Rust 的设计与痛点 1 Await-Tree 的 应用与真实案例 3 设计目标 Await Tree 的设计原理与实现 • 追踪关键 Future 的生命周期和控制流 • Init, First Poll, Pending, Next Poll, Ready Await-Tree Async Rust 可观测性的灵丹妙药 Await-Tree 的 设计原理与实现 2 回顾 Async Rust 的设计与痛点 1 Await-Tree 的 应用与真实案例 3 Await Tree 在 RisingWave 中的应用 • 云原生 SQL 流式数据库 • risingwave.com • GitHub 4.5k Stars • “Materialized0 码力 | 37 页 | 8.60 MB | 1 年前3
共 18 条
- 1
- 2













