Rust 程序设计语言 简体中文版 1.85.0. . . . . . 243 12. 一个 I/O 项目:构建命令行程序 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 249 12.1. 接受命令行参数 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 317 14.5. Cargo 自定义扩展命令 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 对低风险的操作,因为编译器会替你找到经典的错误。同时你可以自信地采取更加激进的优 化,而不会意外引入崩溃或漏洞。 但 Rust 并不局限于底层系统编程。它表达力强、写起来舒适,让人能够轻松地编写出命令行 应用、网络服务器等各种类型的代码——在本书中就有这两者的简单示例。使用 Rust 能让你 把在一个领域中学习的技能延伸到另一个领域:你可以通过编写网页应用来学习 Rust,接着 将同样的技能应用到你的0 码力 | 562 页 | 3.23 MB | 1 月前3
Rust 程序设计语言简体中文版........................ 266 12. 一个 I/O 项目:构建命令行程序 ...................................................................................... 272 12.1. 接受命令行参数 .......................................... 安装二进制文件 ........................................................................... 368 14.5. Cargo 自定义扩展命令 .............................................................................................. 369 对低风险的操作,因为编译器会替你找到经典的错误。同时你可以自信地采取更加激进的优 化,而不会意外引入崩溃或漏洞。 但 Rust 并不局限于底层系统编程。它表达力强、写起来舒适,让人能够轻松地编写出命令行 应用、网络服务器等各种类型的代码——在本书中就有这两者的简单示例。使用 Rust 能让你 把在一个领域中学习的技能延伸到另一个领域:你可以通过编写网页应用来学习 Rust,接着 将同样的技能应用到你的0 码力 | 600 页 | 12.99 MB | 1 年前3
Rust 语言学习笔记5.从官方安装历史版本的 nightly 工具链。 6.通过指定 stable 版本来安装。 7.安装额外的 std 用于交叉编译。 8.安装自定义的工具链。 rustup 常用命令: 1.rustup default配置默认工具链。 2. rustup show 显示当前安装的工具链信息。 3. rustup update 检查安装更新。 的生命周期的子集。但 是 x 的生命周期在第一个 }时结束并销毁,在接下来的 println! 中再 次访问便会发生严重的错误。 3.3.1 隐式 lifetime 我们经常会遇到参数或者返回值为引用类型的函数: fn foo(x: &str) -> &str { x } foo 函数仅仅接受一个 &str 类型的参数(x 为对某个 string 类型资源 Something 因为我们用相同的生命周期参数 'a 标注了返回的引用值,所以返回的引用 值就能保证在 x 和 y 中较短的那个生命周期结束之前保持有效。 要推导 Lifetime 是否合法,先明确两点: 1.输出值(也称为返回值)依赖哪些输入值 2.输入值的 Lifetime 大于或等于(可能依赖的输出值)的 Lifetime (准确来 说:子集,而不是大于或等于) Lifetime 推导公式: 当输出值 R 依赖输入值 0 码力 | 117 页 | 2.24 MB | 1 年前3
Comprehensive Rust(简体中文) 202412Android.bp 文件。 确保 adb sync 适用于你的模拟器或实际设备,并使用 src/android/build_all.sh 预构建所有 Android 示例。请阅读脚本,查看它所运行的命令,并确保这些命令能在你手动运行时正确执行。 Chromium 中的 Rust 深入探究 Chromium 中的 Rust 课程为期半天,旨在介绍 Chromium 浏览器中 Rust 的使用。课程内容 包括在 安装 请按照 https://rustup.rs/ 上的说明操作。 这将为你提供 Cargo 构建工具 (cargo) 和 Rust 编译器 (rustc)。你还将获得 rustup,这是一个命令 行实用程序, 你可以用它来安装不同的编译器版本。 安装 Rust 之后,你应当配置你的编辑器或 IDE 以开始使用 Rust。大多数编辑器使用了 rust-analyzer。 它为 VS Code、Emacs、Vim/Neovim IDE。 • 在 Debian/Ubuntu 上,你也可以通过 apt 安装 Cargo、Rust 源代码和 Rust 格式化工具。但是, 这样会得到一个过时的 Rust 版本,这可能会导致意外的行为。命令如下: sudo apt install cargo rust-src rustfmt 2.1 Rust 生态系统 Rust 生态系统由许多工具组成,主要包括: • rustc:Rust 编译器,可将0 码力 | 359 页 | 1.33 MB | 11 月前3
Hello 算法 1.2.0 简体中文 Rust 版运行代码的前置工作主要分为三步。 第一步:安装本地编程环境。请参照附录所示的教程进行安装,如果已安装,则可跳过此步骤。 第二步:克隆或下载代码仓库。前往 GitHub 仓库。如果已经安装 Git ,可以通过以下命令克隆本仓库: git clone https://github.com/krahets/hello-algo.git 当然,你也可以在图 0‑4 所示的位置,点击“Download ZIP”按钮直接下载代码压缩包,然后在本地解压即 轮后有 2? 个细胞。 第 2 章 复杂度分析 www.hello‑algo.com 36 图 2‑11 和以下代码模拟了细胞分裂的过程,时间复杂度为 ?(2?) 。请注意,输入 ? 表示分裂轮数,返回值 count 表示总分裂次数。 // === File: time_complexity.rs === /* 指数阶(循环实现) */ fn exponential(n: i32) -> i32 方法一:暴力搜索 从状态 [?, ?] 开始搜索,不断分解为更小的状态 [? − 1, ?] 和 [?, ? − 1] ,递归函数包括以下要素。 ‧ 递归参数:状态 [?, ?] 。 ‧ 返回值:从 [0, 0] 到 [?, ?] 的最小路径和 ??[?, ?] 。 ‧ 终止条件:当 ? = 0 且 ? = 0 时,返回代价 ????[0, 0] 。 ‧ 剪枝:当 ? < 0 时或 ?0 码力 | 387 页 | 18.51 MB | 10 月前3
Hello 算法 1.1.0 Rust版运行代码的前置工作主要分为三步。 第一步:安装本地编程环境。请参照附录所示的教程进行安装,如果已安装,则可跳过此步骤。 第二步:克隆或下载代码仓库。前往 GitHub 仓库。如果已经安装 Git ,可以通过以下命令克隆本仓库: git clone https://github.com/krahets/hello-algo.git 当然,你也可以在图 0‑4 所示的位置,点击“Download ZIP”按钮直接下载代码压缩包,然后在本地解压即 方法一:暴力搜索 从状态 [?, ?] 开始搜索,不断分解为更小的状态 [? − 1, ?] 和 [?, ? − 1] ,递归函数包括以下要素。 ‧ 递归参数:状态 [?, ?] 。 ‧ 返回值:从 [0, 0] 到 [?, ?] 的最小路径和 ??[?, ?] 。 ‧ 终止条件:当 ? = 0 且 ? = 0 时,返回代价 ????[0, 0] 。 ‧ 剪枝:当 ? < 0 时或 ? 根据以上分析,我们接下来按顺序实现暴力搜索、记忆化搜索、动态规划解法。 第 14 章 动态规划 hello‑algo.com 331 1. 方法一:暴力搜索 搜索代码包含以下要素。 ‧ 递归参数:状态 [?, ?] 。 ‧ 返回值:子问题的解 ??[?, ?] 。 ‧ 终止条件:当物品编号越界 ? = 0 或背包剩余容量为 0 时,终止递归并返回价值 0 。 ‧ 剪枝:若当前物品重量超出背包剩余容量,则只能选择不放入背包。0 码力 | 388 页 | 18.50 MB | 1 年前3
Hello 算法 1.0.0 Rust版运行代码的前置工作主要分为三步。 第一步:安装本地编程环境。请参照附录所示的教程进行安装,如果已安装,则可跳过此步骤。 第二步:克隆或下载代码仓库。前往 GitHub 仓库。如果已经安装 Git ,可以通过以下命令克隆本仓库: git clone https://github.com/krahets/hello-algo.git 当然,你也可以在图 0‑4 所示的位置,点击“Download ZIP”按钮直接下载代码压缩包,然后在本地解压即 方法一:暴力搜索 从状态 [?, ?] 开始搜索,不断分解为更小的状态 [? − 1, ?] 和 [?, ? − 1] ,递归函数包括以下要素。 ‧ 递归参数:状态 [?, ?] 。 ‧ 返回值:从 [0, 0] 到 [?, ?] 的最小路径和 ??[?, ?] 。 ‧ 终止条件:当 ? = 0 且 ? = 0 时,返回代价 ????[0, 0] 。 ‧ 剪枝:当 ? < 0 时或 ? 根据以上分析,我们接下来按顺序实现暴力搜索、记忆化搜索、动态规划解法。 第 14 章 动态规划 hello‑algo.com 329 1. 方法一:暴力搜索 搜索代码包含以下要素。 ‧ 递归参数:状态 [?, ?] 。 ‧ 返回值:子问题的解 ??[?, ?] 。 ‧ 终止条件:当物品编号越界 ? = 0 或背包剩余容量为 0 时,终止递归并返回价值 0 。 ‧ 剪枝:若当前物品重量超出背包剩余容量,则只能选择不放入背包。0 码力 | 383 页 | 17.61 MB | 1 年前3
Hello 算法 1.2.0 繁体中文 Rust 版執行程式碼的前置工作主要分為三步。 第一步:安裝本地程式設計環境。請參照附錄所示的教程進行安裝,如果已安裝,則可跳過此步驟。 第二步:克隆或下載程式碼倉庫。前往 GitHub 倉庫。如果已經安裝 Git ,可以透過以下命令克隆本倉庫: git clone https://github.com/krahets/hello-algo.git 當然,你也可以在圖 0‑4 所示的位置,點選“Download ZIP”按鈕直接下載程式碼壓縮包,然後在本地解壓 方法一:暴力搜尋 從狀態 [?, ?] 開始搜尋,不斷分解為更小的狀態 [? − 1, ?] 和 [?, ? − 1] ,遞迴函式包括以下要素。 ‧ 遞迴參數:狀態 [?, ?] 。 ‧ 返回值:從 [0, 0] 到 [?, ?] 的最小路徑和 ??[?, ?] 。 ‧ 終止條件:當 ? = 0 且 ? = 0 時,返回代價 ????[0, 0] 。 ‧ 剪枝:當 ? < 0 時或 ? 化搜尋、動態規劃解法。 第 14 章 動態規劃 www.hello‑algo.com 331 1. 方法一:暴力搜尋 搜尋程式碼包含以下要素。 ‧ 遞迴參數:狀態 [?, ?] 。 ‧ 返回值:子問題的解 ??[?, ?] 。 ‧ 終止條件:當物品編號越界 ? = 0 或背包剩餘容量為 0 時,終止遞迴並返回價值 0 。 ‧ 剪枝:若當前物品重量超出背包剩餘容量,則只能選擇不放入背包。0 码力 | 388 页 | 18.82 MB | 10 月前3
基于静态分析的Rust内存安全缺陷检测研究may panic the program. Bad drop of normal execution Bad drop of exception handling drop(_0) 返回值 Auto Memory Reclaim问题:示例2 创建未初始化的变量foo Panic将导致访问未初始化内存 大纲 一、问题背景 二、Rust指针缺陷检测方法 三、实验结论 四、论文发表心得0 码力 | 28 页 | 1.55 MB | 1 年前3
Rust语言核心竞争力-庄晓立FILE* fopen(const char* name, const char* mode) C语言无法从类型系统上区分有效指针和无效指针(NULL),却又习惯把NULL指针用 作特殊标记(空缺的参数或返回值)。一旦程序员忽略NULL指针检查,往往会触发 很严重的内存错误。人难免因疏忽而犯错,编译期检查对此无能为力。 并发安全 一个入口:std::thread::spawn() 两大门神:Send、Sync0 码力 | 51 页 | 1.09 MB | 1 年前3
共 13 条
- 1
- 2













