Rust 程序设计语言 简体中文版 1.85.0这段代码无法通过编译! 9/562Rust 程序设计语言 简体中文版 这段代码会 Panic! 这段代码的运行结果不符合预期。 在大部分情况,我们会指导你将无法通过编译的代码修改为正确版本。 源代码 生成本书的源码可以在 GitHub 上找到。 译者注:此译本也有 GitHub 仓库,欢迎提交 Issue 和 PR :) 10/562Rust 程序设计语言 简体中文版 入门指南 让我们开始 Rust Rust,都应该能正常运行本书中的内容。 命令行标记 本章和全书中,我们会展示一些在终端中使用的命令。所有需要输入到终端的行都以 $ 开头。你不需要输入 $ 字符;这里显示的 $ 字符表示命令行提示符,仅用于提示每 行命令的起点。不以 $ 起始的行通常展示前一个命令的输出。另外,PowerShell 专 用的示例会采用 > 而不是 $。 在 Linux 或 macOS 上安装 rustup 如果你使用 --proto '=https' --tlsv1.2 https://sh.rustup.rs -sSf | sh 此命令下载一个脚本并开始安装 rustup 工具,这会安装最新稳定版 Rust。过程中可能会提示 你输入密码。如果安装成功,将会出现如下内容: Rust is installed now. Great! 另外,你还需要一个 链接器(linker),它是 Rust 用来将其编译的输出链接成一个文件的程0 码力 | 562 页 | 3.23 MB | 1 月前3
Rust 程序设计语言简体中文版这段代码无法通过编译! 9/600 Rust 程序设计语言 简体中文版 这段代码会 Panic! 这段代码的运行结果不符合预期。 在大部分情况,我们会指导你将无法通过编译的代码修改为正确版本。 源代码 生成本书的源码可以在 GitHub 上找到。 译者注:此译本也有 GitHub 仓库,欢迎提交 Issue 和 PR :) 10/600 Rust 程序设计语言 简体中文版 1 . 入 Rust,都应该能正常运行本书中的内容。 命令行标记 本章和全书中,我们会展示一些在终端中使用的命令。所有需要输入到终端的行都以 $ 开头。你不需要输入 $ 字符;这里显示的 $ 字符表示命令行提示符,仅用于提示 每行命令的起点。不以 $ 起始的行通常展示前一个命令的输出。另外,PowerShell 专用的示例会采用 > 而不是 $ 。 在 Linux 或 macOS 上安装 rustup 如果你使用 目录并列出文件。将会看到 Cargo 生成了两个文件和一个目录:一个 Cargo.toml 文件,一个 src 目录,以及位于 src 目录中的 main.rs 文件。 这也会在 hello_cargo 目录初始化了一个 git 仓库,以及一个 .gitignore 文件。如果在一个已经 存在的 git 仓库中运行 cargo new ,则这些 git 相关文件则不会生成;可以通过运行 cargo new0 码力 | 600 页 | 12.99 MB | 1 年前3
Rust 语言学习笔记必须按照合理的方式构建 'cargo.toml'。 而 cargo.lock 文件则不直接面向开发者,也不需要直接去修改这个文件。lock 文件是 cargo 工具根据同一项目的 toml 文件生成的项目依赖详细清单文件。 Cargo 字段: 1.[package]段落描述了软件开发者对本项目的各种元数据描述信息。 2.[dependency] 3.单元测试主要通过在项目代码的 在 main.rs 中,写上: mod aaa; use self::aaa::print_aaa; fn main () { print_aaa(); } 编译后,生成一个可执行文件。 细心的朋友会发现,aaa.rs 中,没有使用 mod xxx {} 这样包裹起来,是 因为 mod xxx; 相当于把 xxx.rs 文件用 mod xxx {} 包裹起来了。 理性看待 rust 语言的升级。只是升级频度高一些,这样的升级在 java 和 go 中 也普遍存在。go 中的感知稍微小一些。 每次升级都要更新相应的工具链。保证最新的编译器和链接器可以将新生成的 程序生成出来。 Rust 的包管理系统非常明显地体现了它的与众不同。 1.3 版本管理工具 作为一门更新快速的语言,rust 开发了专用的版本管理工具 rustup。 对于 go 而言0 码力 | 117 页 | 2.24 MB | 1 年前3
Comprehensive Rust(简体中文) 202412211 37.2.2 Rust Bridge Declarations . . . . . . . . . . . . . . . . . . . . . . . . . 211 37.2.3 生成的 C++ 代码 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 212 37.2.4 C++ 桥接声明 . . . . . 46.4 生成 gn 构建规则 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 239 46.5 解决问题 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 240 46.5.1 构建用于生成代码的脚本 build 只进行编译,而不运行。你 可以在 target/debug/ 中找到常规调试 build 的输出。使用 cargo build --release 在 target/release/ 中生成经过优化的 发布 build。 7. 可以通过修改 Cargo.toml 为项目添加依赖项。当运行 cargo 命令时,系统会自动下载和编译缺 失的依赖项。 尽量鼓励全班学员安装 Cargo 并0 码力 | 359 页 | 1.33 MB | 11 月前3
Hello 算法 1.2.0 简体中文 Rust 版hello‑algo.com 3 图 0‑1 本书主要内容 0.1.3 致谢 本书在开源社区众多贡献者的共同努力下不断完善。感谢每一位投入时间与精力的撰稿人,他们是(按照 GitHub 自动生成的顺序):krahets、coderonion、Gonglja、nuomi1、Reanon、justin‑tse、hpstory、 danielsss、curtishd、night‑cruise、 扬着算法的旋律。 她邀请你共舞,请紧跟她的步伐,踏入充满逻辑与美感的算法世界。 第 1 章 初识算法 www.hello‑algo.com 11 1.1 算法无处不在 当我们听到“算法”这个词时,很自然地会想到数学。然而实际上,许多算法并不涉及复杂数学,而是更多 地依赖基本逻辑,这些逻辑在我们的日常生活中处处可见。 在正式探讨算法之前,有一个有趣的事实值得分享:你已经在不知不觉中学会了许多算法,并习惯将它们应 / 2) + linear_log_recur(n / 2); for _ in 0..n { count += 1; } return count; } 图 2‑13 展示了线性对数阶的生成方式。二叉树的每一层的操作总数都为 ? ,树共有 log2 ? + 1 层,因此时 间复杂度为 ?(? log ?) 。 第 2 章 复杂度分析 www.hello‑algo.com 39 图0 码力 | 387 页 | 18.51 MB | 10 月前3
Hello 算法 1.1.0 Rust版hello‑algo.com 3 图 0‑1 本书主要内容 0.1.3 致谢 本书在开源社区众多贡献者的共同努力下不断完善。感谢每一位投入时间与精力的撰稿人,他们是(按照 GitHub 自动生成的顺序):krahets、Gonglja、nuomi1、codingonion、Reanon、justin‑tse、hpstory、 danielsss、curtishd、night‑cruise 一位少女翩翩起舞,与数据交织在一起,裙摆上飘扬着算法的旋律。 她邀请你共舞,请紧跟她的步伐,踏入充满逻辑与美感的算法世界。 第 1 章 初识算法 hello‑algo.com 11 1.1 算法无处不在 当我们听到“算法”这个词时,很自然地会想到数学。然而实际上,许多算法并不涉及复杂数学,而是更多 地依赖基本逻辑,这些逻辑在我们的日常生活中处处可见。 在正式探讨算法之前,有一个有趣的事实值得分享:你已经在不知不觉中学会了许多算法,并习惯将它们应 linear_log_recur(n / 2); for _ in 0..n as i32 { count += 1; } return count; } 图 2‑13 展示了线性对数阶的生成方式。二叉树的每一层的操作总数都为 ? ,树共有 log2 ? + 1 层,因此时 间复杂度为 ?(? log ?) 。 第 2 章 复杂度分析 hello‑algo.com 39 图 2‑130 码力 | 388 页 | 18.50 MB | 1 年前3
Hello 算法 1.0.0 Rust版hello‑algo.com 3 图 0‑1 本书主要内容 0.1.3 致谢 本书在开源社区众多贡献者的共同努力下不断完善。感谢每一位投入时间与精力的撰稿人,他们是(按照 GitHub 自动生成的顺序):krahets、codingonion、nuomi1、Gonglja、Reanon、justin‑tse、danielsss、 hpstory、S‑N‑O‑R‑L‑A‑X、night‑c 一位少女翩翩起舞,与数据交织在一起,裙摆上飘扬着算法的旋律。 她邀请你共舞,请紧跟她的步伐,踏入充满逻辑与美感的算法世界。 第 1 章 初识算法 hello‑algo.com 11 1.1 算法无处不在 当我们听到“算法”这个词时,很自然地会想到数学。然而实际上,许多算法并不涉及复杂数学,而是更多 地依赖基本逻辑,这些逻辑在我们的日常生活中处处可见。 在正式探讨算法之前,有一个有趣的事实值得分享:你已经在不知不觉中学会了许多算法,并习惯将它们应 linear_log_recur(n / 2.0); for _ in 0 ..n as i32 { count += 1; } return count } 图 2‑13 展示了线性对数阶的生成方式。二叉树的每一层的操作总数都为 ? ,树共有 log2 ? + 1 层,因此时 间复杂度为 ?(? log ?) 。 第 2 章 复杂度分析 hello‑algo.com 39 图 2‑130 码力 | 383 页 | 17.61 MB | 1 年前3
Comprehensive Rust(繁体中文)if/else 運算式會傳回列舉,之後列舉會透過 match 解除封裝。 • 您可以嘗試在列舉定義中加入第三個變體,並在執行程式碼時顯示錯誤。請向學員指出程式碼現在 有哪些地方還不詳盡,並說明編譯器會如何嘗試給予提示。 • The values in the enum variants can only be accessed after being pattern matched. • Demonstrate 以下程式碼實作一個非常簡單的運算式語言剖析器,但會藉由恐慌來處理錯誤。請重新編寫,改用慣用的 錯誤處理機制,並將錯誤傳播至 main 的回傳陳述式。您可以自由使用 thiserror 和 anyhow。 提示:首先請修正 parse 函式中的錯誤處理機制。確認一切正常運作後,更新 Tokenizer 即可實作 Iterator- >,並在剖析器中處理。 透過以下模組支援 Rust: 模組型態 敘述 rust_binary 生成一個 Rust 執行檔。 rust_library 生成一個 Rust 函式庫,及其對應 的 rlib 和 dylib 變體。 rust_ffi 生成一個可被 cc 模組使用的 Rust C 函式庫,及其對應的靜態 和共享變體。 rust_proc_macro 生成一個 proc-macro Rust 函 式庫,類似於編譯器 擴充。
0 码力 | 358 页 | 1.41 MB | 11 月前3
Comprehensive Rust(繁体中文) 202406if/else 運算式會傳回列舉,之後列舉會透過 match 解除封裝。 • 您可以嘗試在列舉定義中加入第三個變體,並在執行程式碼時顯示錯誤。請向學員指出程式碼現在 有哪些地方還不詳盡,並說明編譯器會如何嘗試給予提示。 • The values in the enum variants can only be accessed after being pattern matched. • Demonstrate 以下程式碼實作一個非常簡單的運算式語言剖析器,但會藉由恐慌來處理錯誤。請重新編寫,改用慣用的 錯誤處理機制,並將錯誤傳播至 main 的回傳陳述式。您可以自由使用 thiserror 和 anyhow。 提示:首先請修正 parse 函式中的錯誤處理機制。確認一切正常運作後,更新 Tokenizer 即可實作 Iterator- >,並在剖析器中處理。 透過以下模組支援 Rust: 模組型態 敘述 rust_binary 生成一個 Rust 執行檔。 rust_library 生成一個 Rust 函式庫,及其對應 的 rlib 和 dylib 變體。 rust_ffi 生成一個可被 cc 模組使用的 Rust C 函式庫,及其對應的靜態 和共享變體。 rust_proc_macro 生成一個 proc-macro Rust 函 式庫,類似於編譯器 擴充。
0 码力 | 356 页 | 1.41 MB | 1 年前3
Hello 算法 1.2.0 繁体中文 Rust 版hello‑algo.com 3 圖 0‑1 本書主要內容 0.1.3 致謝 本書在開源社群眾多貢獻者的共同努力下不斷完善。感謝每一位投入時間與精力的撰稿人,他們是(按照 GitHub 自動生成的順序):krahets、coderonion、Gonglja、nuomi1、Reanon、justin‑tse、hpstory、 danielsss、curtishd、night‑cruise、 / 2) + linear_log_recur(n / 2); for _ in 0..n { count += 1; } return count; } 圖 2‑13 展示了線性對數階的生成方式。二元樹的每一層的操作總數都為 ? ,樹共有 log2 ? + 1 層,因此時 間複雜度為 ?(? log ?) 。 第 2 章 複雜度分析 www.hello‑algo.com 39 圖 記號表示: // === File: worst_best_time_complexity.rs === /* 生成一個陣列,元素為 { 1, 2, ..., n },順序被打亂 */ fn random_numbers(n: i32) -> Vec{ // 生成陣列 nums = { 1, 2, 3, ..., n } let mut nums = (1..=n).collect:: >(); 0 码力 | 388 页 | 18.82 MB | 10 月前3
共 24 条
- 1
- 2
- 3













