Rust 程序设计语言 简体中文版 1.85.0Linux 用户通常需要根据发行版(distribution)文档安装 GCC 或 Clang。比如,如果你使用 Ubuntu,可以安装 build-essential 包。 12/562Rust 程序设计语言 简体中文版 在 Windows 上安装 rustup 在 Windows 上,前往 https://www.rust-lang.org/install.html 并按照说明安装 Rust。在安 版本的版本号、对应的 Commit Hash 和 Commit 日期: rustc x.y.z (abcabcabc yyyy-mm-dd) 如果看到了这样的信息,就说明 Rust 已经安装成功了!如果没看到,请按照下面说明的方法 检查 Rust 是否在您的 %PATH% 系统变量中。 在 Windows CMD 中,请使用命令: > echo %PATH% 在 PowerShell 中,请使用命令: 注:如果你希望在 Rust 项目中保持一种标准风格,可以使用名为 rustfmt 的自动格 式化工具将代码格式化为特定的风格(更多内容详见附录 D 中的 rustfmt)。Rust 团 队已经在标准的 Rust 发行版中包含了这个工具,就像 rustc 一样。所以它应该已经 安装在你的电脑中了! 在 main 函数体中有如下代码: println!("Hello, world!"); 这行代码完成这个简单0 码力 | 562 页 | 3.23 MB | 1 月前3
Hello 算法 1.1.0 Rust版算法通常可以基于不同的数据结构实现,但执行效率可能相差很大,选择合适的数据结构是关键。 图 1‑4 数据结构与算法的关系 数据结构与算法犹如图 1‑5 所示的拼装积木。一套积木,除了包含许多零件之外,还附有详细的组装说明书。 我们按照说明书一步步操作,就能组装出精美的积木模型。 第 1 章 初识算法 hello‑algo.com 15 图 1‑5 拼装积木 两者的详细对应关系如表 1‑1 所示。 表 1‑1 将数据结构与算法类比为拼装积木 将数据结构与算法类比为拼装积木 数据结构与算法 拼装积木 输入数据 未拼装的积木 数据结构 积木组织形式,包括形状、大小、连接方式等 算法 把积木拼成目标形态的一系列操作步骤 输出数据 积木模型 值得说明的是,数据结构与算法是独立于编程语言的。正因如此,本书得以提供基于多种编程语言的实现。 约定俗成的简称 在实际讨论时,我们通常会将“数据结构与算法”简称为“算法”。比如众所周知的 LeetCode ("{}", 0); // +1 } } 设算法的操作数量是一个关于输入数据大小 ? 的函数,记为 ?(?) ,则以上函数的操作数量为: ?(?) = 3 + 2? ?(?) 是一次函数,说明其运行时间的增长趋势是线性的,因此它的时间复杂度是线性阶。 我们将线性阶的时间复杂度记为 ?(?) ,这个数学符号称为大 ? 记号(big‑? notation),表示函数 ?(?) 的 渐近上界(asymptotic0 码力 | 388 页 | 18.50 MB | 1 年前3
Hello 算法 1.0.0 Rust版算法通常可以基于不同的数据结构实现,但执行效率可能相差很大,选择合适的数据结构是关键。 图 1‑4 数据结构与算法的关系 数据结构与算法犹如图 1‑5 所示的拼装积木。一套积木,除了包含许多零件之外,还附有详细的组装说明书。 我们按照说明书一步步操作,就能组装出精美的积木模型。 第 1 章 初识算法 hello‑algo.com 15 图 1‑5 拼装积木 两者的详细对应关系如表 1‑1 所示。 表 1‑1 将数据结构与算法类比为拼装积木 将数据结构与算法类比为拼装积木 数据结构与算法 拼装积木 输入数据 未拼装的积木 数据结构 积木组织形式,包括形状、大小、连接方式等 算法 把积木拼成目标形态的一系列操作步骤 输出数据 积木模型 值得说明的是,数据结构与算法是独立于编程语言的。正因如此,本书得以提供基于多种编程语言的实现。 � 约定俗成的简称 在实际讨论时,我们通常会将“数据结构与算法”简称为“算法”。比如众所周知的 LeetCode ("{}", 0); // +1 } } 设算法的操作数量是一个关于输入数据大小 ? 的函数,记为 ?(?) ,则以上函数的操作数量为: ?(?) = 3 + 2? ?(?) 是一次函数,说明其运行时间的增长趋势是线性的,因此它的时间复杂度是线性阶。 我们将线性阶的时间复杂度记为 ?(?) ,这个数学符号称为「大 ? 记号 big‑? notation」,表示函数 ?(?) 的「渐近上界0 码力 | 383 页 | 17.61 MB | 1 年前3
Hello 算法 1.2.0 简体中文 Rust 版算法通常可以基于不同的数据结构实现,但执行效率可能相差很大,选择合适的数据结构是关键。 图 1‑4 数据结构与算法的关系 数据结构与算法犹如图 1‑5 所示的拼装积木。一套积木,除了包含许多零件之外,还附有详细的组装说明书。 我们按照说明书一步步操作,就能组装出精美的积木模型。 第 1 章 初识算法 www.hello‑algo.com 15 图 1‑5 拼装积木 两者的详细对应关系如表 1‑1 所示。 表 1‑1 将数据结构与算法类比为拼装积木 将数据结构与算法类比为拼装积木 数据结构与算法 拼装积木 输入数据 未拼装的积木 数据结构 积木组织形式,包括形状、大小、连接方式等 算法 把积木拼成目标形态的一系列操作步骤 输出数据 积木模型 值得说明的是,数据结构与算法是独立于编程语言的。正因如此,本书得以提供基于多种编程语言的实现。 约定俗成的简称 在实际讨论时,我们通常会将“数据结构与算法”简称为“算法”。比如众所周知的 LeetCode ("{}", 0); // +1 } } 设算法的操作数量是一个关于输入数据大小 ? 的函数,记为 ?(?) ,则以上函数的操作数量为: ?(?) = 3 + 2? ?(?) 是一次函数,说明其运行时间的增长趋势是线性的,因此它的时间复杂度是线性阶。 我们将线性阶的时间复杂度记为 ?(?) ,这个数学符号称为大 ? 记号(big‑? notation),表示函数 ?(?) 的 渐近上界(asymptotic0 码力 | 387 页 | 18.51 MB | 10 月前3
Rust 语言学习笔记x = 5; let y = if x == 5 { println!("hello test”) 10 } else { 15 }; // y: i32 需要说明的是 if 中条件判断必须是 bool 类型,不能写出 if 5 这种判断条件。 2.2.2 match 语句 Rust 中没有类似于 C 的 switch 关键字,但它有用于模式匹配的 copy trait。 如果实现了 copy trait,那么就不会夺走它的所有权,标识符在函数外部还可 以继续访问。 如果没有实现 copy trait,那么它的所有权都会被夺走。 需要说明的是,从结果上来看,引用是值传递,和实现了 copy trait 的表征相 同,同样可以外部继续使用。 举例而言: pub fn test(){ let a = vec![1,2,3 println!("{:?}",a) } 从上面可以看出,以 vec!为函数参数则发生了 move,在后面无法使用。 以&vec!为函数参数,后续仍然可以使用&vec!。 错误提示中也是说明根据是否实现 copy trait 来决定是否进行所有权的转移。 3.4.2 涉及到函数和结构体的借用检查器 在 rust 中引入引用后,我们需要使用引入借用检查器来保证引用的生命周期不 会超过所有权的生命周期。0 码力 | 117 页 | 2.24 MB | 1 年前3
Rust 程序设计语言简体中文版build-essential 包。 在 Windows 上安装 rustup 在 Windows 上,前往 https://www.rust-lang.org/install.html 并按照说明安装 Rust。在安 装过程的某个步骤,你会收到一个信息说明为什么需要安装 Visual Studio 2013 或其更新版本 的 MSVC 构建工具。 要获取构建工具,你需要安装 Visual Studio 2022。当被问及需要安装什么工作负载 Commit Hash 和 Commit 日期: rustc x.y.z (abcabcabc yyyy-mm-dd) 如果看到了这样的信息,就说明 Rust 已经安装成功了! 译者:恭喜入坑!(此处应该有掌声!) 如果没看到,请按照下面说明的方法检查 Rust 是否在您的 %PATH% 系统变量中。 在 Windows CMD 中,请使用命令: > echo %PATH% 在 PowerShell “安 装” 部分介绍的官方安装包的话,则自带了 Cargo。如果通过其他方式安装的话,可以在终端 输入如下命令检查是否安装了 Cargo: $ cargo --version 如果你看到了版本号,说明已安装!如果看到类似 command not found 的错误,你应该查看相 应安装文档以确定如何单独安装 Cargo。 使用 Cargo 创建项目 我们使用 Cargo 创建一个新项目,然后看看与上面的0 码力 | 600 页 | 12.99 MB | 1 年前3
基于 Rust 语言编写的可编程的全球分布式 MQTT 服务器 王文庭⽹聚云联 王⽂庭 基于边缘架构的可编程MQTT服务 CONTENTS 背景说明 O1 O2 O4 HPMQ简介 HPMQ开发说明 HPMQ未来规划 O3 1. 背景说明 物联⽹时代带来的变化 海量 连⽹ 设备 海量数据处理? 设备安全性? 共性:边缘 原来以数据中 ⼼为核⼼的云 端架构是否还 满⾜需求? 01 02 03 边缘架构 ⼀种分布式计 算架构 在⼀些资源 受限的设备上跑起来; Wasm vs Docker • Kubedge? • OpenYurt? • Krustlet? wasm如何分发部署? 3. HPMQ函数开发说明 HPMQ平台 触发器 公共函数 (⽐如:tb2aws) 私有函数 配置 关联 关联 使⽤流程 编写函数 Hpmqfile OCI镜像 镜像仓库 hpmq-cli build hpmq-cli0 码力 | 31 页 | 3.95 MB | 1 年前3
Comprehensive Rust(简体中文) 202412并能够坐下来使用笔记本电脑。特别地,讲师需要进行大量的现场编码工作,因此讲台是不需要的。 4. 课程当天,请提早到教室进行准备。建议直接在笔记本电脑上运行 mdbook serve 来演示课程内 容(请参阅安装说明)。这样可以确保在更换页面时不会出现延迟,演示效果更好。使用笔记本运行还 可以在发现错别字时及时更正。 5. 让学员自己或以小组为单位解决练习问题。通常在上午和下午各安排 30-45 分钟的练习时间(包括 和@ronaldfw。 • 日语版本译者:@CoinEZ-JPN 和@momotaro1105。 • 意大利语版本译者:@henrythebuilder 和@detro。 如果你想协助翻译,请参阅翻译说明,了解如何开始翻译工作。翻译工作可通过此议题追踪。 16 第 2 部分 使用Cargo 开始了解 Rust 后,你很快就会遇到 Cargo,这是 Rust 生态系统中用于构建和运行 Rust 应用的标准工 具。在这里,我们想简要介绍一下什么是 Cargo、它如何融入更广泛的生态系统,以及我们如何在本培训 中合理利用 Cargo。 安装 请按照 https://rustup.rs/ 上的说明操作。 这将为你提供 Cargo 构建工具 (cargo) 和 Rust 编译器 (rustc)。你还将获得 rustup,这是一个命令 行实用程序, 你可以用它来安装不同的编译器版本。 安装 Rust0 码力 | 359 页 | 1.33 MB | 11 月前3
简谈 Rust 与国密 TLS - 王江桐对于8个大型、通用、开源的 C 与 C++ 密码库进行调研; • 现有的问题在于: • 密码库导致的一些错误,除了本身包含的一些算法错误以及内存错误,其他的一些问题出在用户的使用错 误,即文档、API、等相关说明的缺失; • 37.2%的漏洞在于实现时的系统内存错误,其中19.4%是buffer问题,17.7%是资源管理问题; • 对于CVSS评分为 7.0 - 10.0 的严重错误中,只有 3.57%0 码力 | 44 页 | 3.70 MB | 1 年前3
Rust算法教程 The Algos (algorithms)swap(j - 1, j); swapped = true; } } // 如果当前循环没有发⽣元素交换,说明数组已经有序 if !swapped { break; } } } #[cfg(test)] mod tests { use0 码力 | 270 页 | 8.46 MB | 1 年前3
共 10 条
- 1













