Comprehensive Rust(简体中文) 202412语句的行为都有明确定义 – 数组访问有边界检查。 – 整数溢出有明确定义(panic 或回绕)。 • 代 言功能:具有与高级语言一样丰富且人性化的表达能力 – 枚举和模式匹配。 – 泛型。 – 无额外开销的外部函数接口(FFI)。 – 零成本抽象。 – 强大的编译器错误提示。 – 内置依赖管理器。 – 对测试的内置支持。 – 优秀的语言服务协议(Language Server Protocol)支持。 你可以通过更改块的最后一行,来展示块值的变化情况。例如,添加/移除分号或使用 return。 6.4.1 作用域和遮蔽(Shadowing) 变量的作用域仅限于封闭代码块内。 你可以隐藏变量,位于外部作用域的变量和 相同作用域的变量都可以: fn main() { let a = 10; println!("before: {a}"); { let a = "hello"; println if they were all defined in an enum. • Rust 使用最小的空间来存储判标识。 – 如有必要,它会存储所需最小大小的整数 – 如果允许的变体值未涵盖所有位模式,则它将使用无效的位模式对判别标识进行编码(“小众 优化”)。例如,Option<&u8> 存储的要么是指向整数的指针,要么是 None 变体的 NULL 值。 – You can control the0 码力 | 359 页 | 1.33 MB | 11 月前3
简谈 Rust 与国密 TLS - 王江桐10118-3:2018 ECC加解密,签名验 签,密钥交换 非对称 加密 128 ECC 是 TLCP、区块链等场景,用于签名 验签等 Sm3 GM/T 0004-2012 ISO/IEC 10118-3:2018 计算密码杂凑 哈希 256 SHA256 是 TLCP、数字签名及验证、消息认 证码生成及验证、随机数生成、 密钥扩充 Sm4 GM/T 0002-2012 ISO/IEC 128 否,仅以 IP 核的形 式存在于芯片中 卡证类、票务类、支付与通卡类 应用 Sm9 GM/T 0044-2016 ISO/IEC 10118-3:2018 标识密码算法:签名 校验,密钥交换,密 钥封装与加解密 非对称 加密 128 是 TLCP,适用于新兴应用的安全保 障(云、智能终端、物联网), 系统可以提供身份标识 ZUC GB/T 33133-2021 3GPP TS 准 SM1 Introduction of SM1 Rust China Conf 2022 – 2023, Shanghai, China • SM1 是分组加密算法,实现对称加密,分组长度和密钥长度都为 128 位,对长消息进行加解密时, 若消息长度过长,需要进行分组,如果消息长度不足,则要进行填充。 • 保证数据机密性。 • 算法安全保密强度及相关软硬件实现性能与 AES 相当,该算法不公开,仅以0 码力 | 44 页 | 3.70 MB | 1 年前3
Rust 程序设计语言 简体中文版 1.85.0Rust!本章将介绍一些 Rust 中常见的概念,并通过 真实的程序来展示如何运用它们。你将会学到 let、match、方法(methods)、关联函数 (associated functions)、外部 crate 等知识!后续章节会深入探讨这些概念的细节。在这一 章,我们将主要练习基础内容。 我们会实现一个经典的新手编程问题:猜数字游戏。游戏的规则如下:程序将会生成一个 1 到 100 之间的 println! 占位符打印值 除了位于结尾的右花括号,目前为止就只有这一行代码值得讨论一下了: println!("You guessed: {guess}"); 这行代码现在打印了存储用户输入的字符串。{} 这对大括号是一个占位符:把 {} 想象成小蟹 钳,可以夹住合适的值。当打印变量的值时,变量名可以写进大括号中。当打印表达式的执行 结果时,格式化字符串(format stri 源代码文件。我们正在构建的项目是一个 二进制 crate,它生成一个 可执行文件。 rand crate 是一个 库 crate,库 crate 可以包含任意能被其他程序使用的代码, 但是无法独立执行。 Cargo 对外部 crate 的运用是其真正的亮点所在。在我们使用 rand 编写代码之前,需要修改 Cargo.toml 文件,引入一个 rand 依赖。现在打开这个文件并将下面这一行添加到 [dependencies]0 码力 | 562 页 | 3.23 MB | 1 月前3
Rust 程序设计语言简体中文版Rust!本章将介绍 Rust 中一些常用概念,并通过 真实的程序来展示如何运用它们。你将会学到 let 、match 、方法(method)、关联函数 (associated function)、外部 crate 等知识!后续章节会深入探讨这些概念的细节。在这一 章,我们将练习基础内容。 我们会实现一个经典的新手编程问题:猜猜看游戏。它是这么工作的:程序将会随机生成一个 1 到 100 之间的 guess) # .expect("Failed to read line"); # println!("You guessed: {guess}"); # } 这行代码现在打印了存储用户输入的字符串。里面的 {} 是预留在特定位置的占位符:把 {} 想象成小蟹钳,可以夹住合适的值。当打印变量的值时,变量名可以写进大括号中。当打印表 达式的执行结果时,格式化字符串(format 代码包。我们正在构建的项目是一个 二进制 crate,它生成一个可执 行文件。 rand crate 是一个 库 crate,库 crate 可以包含任意能被其他程序使用的代码,但是 不能自执行。 Cargo 对外部 crate 的运用是其真正的亮点所在。在我们使用 rand 编写代码之前,需要修改 Cargo.toml 文件,引入一个 rand 依赖。现在打开这个文件并将下面这一行添加到 [dependencies]0 码力 | 600 页 | 12.99 MB | 1 年前3
Rust 语言学习笔记1.2.1 module 的可见性 ................................................................. 11 1.2.2 引用外部文件模块 ................................................................ 11 1.2.3 多文件模块的层级关系 ....... 5 Re-exporting....................................................................... 14 1.2.6 加载外部库......................................................................... 14 1.2.7 prelude...... src/bin/*.rs(这里每一个 rs 文件均对应一个可执 行文件)。 外部测试源代码文件位于 tests 目录下。 示例程序源代码文件位于 examples。 基准测试源代码文件位于 benches 目录下。 cargo.toml 是 cargo 特有的项目数据描述文件,对于猿们而言,cargo.toml 文 件存储了项目的所有信息,它直接面向 rustacean,如果想让自己的 rust0 码力 | 117 页 | 2.24 MB | 1 年前3
Rust算法教程 The Algos (algorithms)https://algo.course.rs/print.html 182/270 加密算法 数据加密的基本过程就是对原来为明⽂的⽂件或数据按某种算法进⾏处理,使其成为不可读的⼀段 代码为“密⽂”,使其只能在输⼊相应的密钥之后才能显示出原容,通过这样的途径来达到保护数据 不被⾮法⼈窃取、阅读的⽬的。 该过程的逆过程为解密,即将该编码信息转化为其原来数据的过 程。 随着信息化和数字化社会的发展,⼈们对信息安全和保密的重要性认识不断提⾼,于是在1997 (algorithms) https://algo.course.rs/print.html 220/270 数据结构 数据结构是计算机存储、组织数据的⽅式。数据结构是指相互之间存在⼀种或多种特定关系的数据 元素的集合。通常情况下,精⼼选择的数据结构可以带来更⾼的运⾏或者存储效率。数据结构往往 同⾼效的检索算法和索引技术有关 在计算机科学的发展过程中,数据结构也随之发展。程序设计中常⽤的数据结构包括如下⼏个。 指针数组和结构数组等。数组还可以有⼀维、⼆维以及多维等表现形式。 2. 栈( Stack) 栈是⼀种特殊的线性表,它只能在⼀个表的⼀个固定端进⾏数据结点的插⼊和删 除操作。栈按照后进先出的原则来存储数据,也就是说,先插⼊的数据将被压⼊栈底,最后 插⼊的数据在栈顶,读出数据时,从栈顶开始逐个读出。栈在汇编语⾔程序中,经常⽤于重 要数据的现场保护。栈中没有数据时,称为空栈。 3. 队列(Queue)0 码力 | 270 页 | 8.46 MB | 1 年前3
Comprehensive Rust(繁体中文)你可以藉由改變區塊中的最後一行來觀察區塊數值的變化。舉例來說,新增或刪除一個分號,或者使 用 return。 6.4.1 範圍和遮蔽 變數的有效範疇受限於封閉其變數的區塊。 您可以遮蔽變量,包括來自外部範圍以及來自同一範圍的變量: fn main() { let a = 10; println!("before: {a}"); { let a = "hello"; println!("inner in inner scope: {a}"); } println!("after: {a}"); } • 請說明變數的範疇受到限制,做法是在最後一個範例的內部區塊中新增 b,然後嘗試在該區塊外部 存取 b。 • Shadowing is different from mutation, because after shadowing both variable's memory locations minutes 對裸指標解參考 10 minutes 可變的靜態變數 5 minutes 聯合體 5 minutes 呼叫不安全的函式 5 minutes 實作不安全的特徵 5 minutes 練習:封裝外部函式介面 (FFI) 30 minutes 30.1 不安全的 Rust Rust 語言包含兩個部分: • **安全的 Rust:**可確保記憶體安全,無法觸發未定義的行為。 • **不安全的0 码力 | 358 页 | 1.41 MB | 11 月前3
Comprehensive Rust(繁体中文) 202406你可以藉由改變區塊中的最後一行來觀察區塊數值的變化。舉例來說,新增或刪除一個分號,或者使 用 return。 6.4.1 範圍和遮蔽 變數的有效範疇受限於封閉其變數的區塊。 您可以遮蔽變量,包括來自外部範圍以及來自同一範圍的變量: fn main() { let a = 10; println!("before: {a}"); { let a = "hello"; println!("inner in inner scope: {a}"); } println!("after: {a}"); } • 請說明變數的範疇受到限制,做法是在最後一個範例的內部區塊中新增 b,然後嘗試在該區塊外部 存取 b。 • Shadowing is different from mutation, because after shadowing both variable's memory locations minutes 對裸指標解參考 10 minutes 可變的靜態變數 5 minutes 聯合體 5 minutes 呼叫不安全的函式 5 minutes 實作不安全的特徵 5 minutes 練習:封裝外部函式介面 (FFI) 30 minutes 30.1 不安全的 Rust Rust 語言包含兩個部分: • **安全的 Rust:**可確保記憶體安全,無法觸發未定義的行為。 • **不安全的0 码力 | 356 页 | 1.41 MB | 1 年前3
Hello 算法 1.2.0 简体中文 Rust 版最终得到了可行的找零方 案。从数据结构与算法的角度看,这种方法本质上是“贪心”算法。 小到烹饪一道菜,大到星际航行,几乎所有问题的解决都离不开算法。计算机的出现使得我们能够通过编程 将数据结构存储在内存中,同时编写代码调用 CPU 和 GPU 执行算法。这样一来,我们就能把生活中的问题 转移到计算机上,以更高效的方式解决各种复杂问题。 Tip 如果你对数据结构、算法、数组和二分查找等概 具有可行性,能够在有限步骤、时间和内存空间下完成。 ‧ 各步骤都有确定的含义,在相同的输入和运行条件下,输出始终相同。 1.2.2 数据结构定义 数据结构(data structure)是组织和存储数据的方式,涵盖数据内容、数据之间关系和数据操作方法,它具 有以下设计目标。 第 1 章 初识算法 www.hello‑algo.com 14 ‧ 空间占用尽量少,以节省计算机内存。 ‧ 数 数据结构与算法的关系 如图 1‑4 所示,数据结构与算法高度相关、紧密结合,具体表现在以下三个方面。 ‧ 数据结构是算法的基石。数据结构为算法提供了结构化存储的数据,以及操作数据的方法。 ‧ 算法为数据结构注入生命力。数据结构本身仅存储数据信息,结合算法才能解决特定问题。 ‧ 算法通常可以基于不同的数据结构实现,但执行效率可能相差很大,选择合适的数据结构是关键。 图 1‑4 数据结构与算法的关系0 码力 | 387 页 | 18.51 MB | 10 月前3
Hello 算法 1.1.0 Rust版最终得到了可行的找零方 案。从数据结构与算法的角度看,这种方法本质上是“贪心”算法。 小到烹饪一道菜,大到星际航行,几乎所有问题的解决都离不开算法。计算机的出现使得我们能够通过编程 将数据结构存储在内存中,同时编写代码调用 CPU 和 GPU 执行算法。这样一来,我们就能把生活中的问题 转移到计算机上,以更高效的方式解决各种复杂问题。 Tip 如果你对数据结构、算法、数组和二分查找等概 具有可行性,能够在有限步骤、时间和内存空间下完成。 ‧ 各步骤都有确定的含义,在相同的输入和运行条件下,输出始终相同。 1.2.2 数据结构定义 数据结构(data structure)是计算机中组织和存储数据的方式,具有以下设计目标。 ‧ 空间占用尽量少,以节省计算机内存。 第 1 章 初识算法 hello‑algo.com 14 ‧ 数据操作尽可能快速,涵盖数据访问、添加、删除、更新等。 ‧ 数据结构与算法的关系 如图 1‑4 所示,数据结构与算法高度相关、紧密结合,具体表现在以下三个方面。 ‧ 数据结构是算法的基石。数据结构为算法提供了结构化存储的数据,以及操作数据的方法。 ‧ 算法是数据结构发挥作用的舞台。数据结构本身仅存储数据信息,结合算法才能解决特定问题。 ‧ 算法通常可以基于不同的数据结构实现,但执行效率可能相差很大,选择合适的数据结构是关键。 图 1‑4 数据结构与算法的关系0 码力 | 388 页 | 18.50 MB | 1 年前3
共 25 条
- 1
- 2
- 3













