Rust 语言学习笔记println!("{}", x); //output //100 //2 } //一般理解,*v 操作,是 &v 的反向操作, //即试图由资源的引用获取到资源的拷贝(如果资源类型实现了 Copy),或所有权(资源类型没有实 现 Copy)。 { let mut x = String::from("hello"); 原生类型的无效值,即使是在私有字段/本地变量中: o 空/悬垂引用或装箱 o bool 中一个不是 false(0)或 true(1)的值 o enum 中一个并不包含在类型定义中判别式 o char 中一个代理字(surrogate)或超过 char::MAX 的值 o str 中非 UTF-8 字节序列 在外部代码中使用 Rust 或在 Rust 中使用外部语言。 6.3 FFI(Foreign trait 能够从任意引用类型实例,生成具有所有权的类型实例。 6.6.4 Deref Deref 是 deref 操作符 * 的 trait,比如 *v。 一般理解,*v 操作,是 &v 的反向操作,即试图由资源的引用获取到资源 的拷贝(如果资源类型实现了 Copy),或所有权(资源类型没有实现 Copy)。 6.6.4.1 强制解引 这种隐式转换的规则为: 一个类型为 T 的对象0 码力 | 117 页 | 2.24 MB | 1 年前3
Hello 算法 1.1.0 Rust版语言设计之初,人们认 为 16 位足以表示所有可能的字符。然而,这是一个不正确的判断。后来 Unicode 规范扩展到了超过 16 位,所以 Java 中的字符现在可能由一对 16 位的值(称为“代理对”)表示。 ‧ JavaScript 和 TypeScript 的字符串使用 UTF‑16 编码的原因与 Java 类似。当 1995 年 Netscape 公司 首次推出 JavaScript 操作系统)都广泛使用 UTF‑16 编码。 由于以上编程语言对字符数量的低估,它们不得不采取“代理对”的方式来表示超过 16 位长度的 Unicode 字符。这是一个不得已为之的无奈之举。一方面,包含代理对的字符串中,一个字符可能占用 2 字节或 4 字 节,从而丧失了等长编码的优势。另一方面,处理代理对需要额外增加代码,这提高了编程的复杂性和调试 难度。 出于以上原因,部分编程语言提出了一些不同的编码方案。 肯定变小;而高度由短板决定,因此高度只可能不变(? 仍为短板)或 变小(移动后的 ? 成为短板)。 第 15 章 贪心 hello‑algo.com 363 图 15‑9 向内移动长板后的状态 反向思考,我们只有向内收缩短板 ? ,才有可能使容量变大。因为虽然宽度一定变小,但高度可能会变大(移 动后的短板 ? 可能会变长)。例如在图 15‑10 中,移动短板后面积变大。 图 15‑10 向内移动短板后的状态0 码力 | 388 页 | 18.50 MB | 1 年前3
Hello 算法 1.2.0 简体中文 Rust 版语言设计之初,人们认 为 16 位足以表示所有可能的字符。然而,这是一个不正确的判断。后来 Unicode 规范扩展到了超过 16 位,所以 Java 中的字符现在可能由一对 16 位的值(称为“代理对”)表示。 ‧ JavaScript 和 TypeScript 的字符串使用 UTF‑16 编码的原因与 Java 类似。当 1995 年 Netscape 公司 首次推出 JavaScript 操作系统)都广泛使用 UTF‑16 编码。 由于以上编程语言对字符数量的低估,它们不得不采取“代理对”的方式来表示超过 16 位长度的 Unicode 字符。这是一个不得已为之的无奈之举。一方面,包含代理对的字符串中,一个字符可能占用 2 字节或 4 字 节,从而丧失了等长编码的优势。另一方面,处理代理对需要额外增加代码,这提高了编程的复杂性和调试 难度。 出于以上原因,部分编程语言提出了一些不同的编码方案。 肯定变小;而高度由短板决定,因此高度只可能不变(? 仍为短板)或 变小(移动后的 ? 成为短板)。 第 15 章 贪心 www.hello‑algo.com 362 图 15‑9 向内移动长板后的状态 反向思考,我们只有向内收缩短板 ? ,才有可能使容量变大。因为虽然宽度一定变小,但高度可能会变大(移 动后的短板 ? 可能会变长)。例如在图 15‑10 中,移动短板后面积变大。 图 15‑10 向内移动短板后的状态0 码力 | 387 页 | 18.51 MB | 10 月前3
Hello 算法 1.0.0 Rust版语言设计之初,人们认 为 16 位足以表示所有可能的字符。然而,这是一个不正确的判断。后来 Unicode 规范扩展到了超过 16 位,所以 Java 中的字符现在可能由一对 16 位的值(称为“代理对”)表示。 ‧ JavaScript 和 TypeScript 的字符串使用 UTF‑16 编码的原因与 Java 类似。当 1995 年 Netscape 公司 首次推出 JavaScript 操作系统)都广泛使用 UTF‑16 编码。 由于以上编程语言对字符数量的低估,它们不得不采取“代理对”的方式来表示超过 16 位长度的 Unicode 字符。这是一个不得已为之的无奈之举。一方面,包含代理对的字符串中,一个字符可能占用 2 字节或 4 字 节,从而丧失了等长编码的优势。另一方面,处理代理对需要额外增加代码,这提高了编程的复杂性和调试 难度。 出于以上原因,部分编程语言提出了一些不同的编码方案。 肯定变小;而高度由短板决定,因此高度只可能不变(? 仍为短板)或 变小(移动后的 ? 成为短板)。 第 15 章 贪心 hello‑algo.com 361 图 15‑9 向内移动长板后的状态 反向思考,我们只有向内收缩短板 ? ,才有可能使容量变大。因为虽然宽度一定变小,但高度可能会变大(移 动后的短板 ? 可能会变长)。例如在图 15‑10 中,移动短板后面积变大。 图 15‑10 向内移动短板后的状态0 码力 | 383 页 | 17.61 MB | 1 年前3
Hello 算法 1.2.0 繁体中文 Rust 版語言設計之初,人們 認為 16 位足以表示所有可能的字元。然而,這是一個不正確的判斷。後來 Unicode 規範擴展到了超 過 16 位,所以 Java 中的字元現在可能由一對 16 位的值(稱為“代理對”)表示。 ‧ JavaScript 和 TypeScript 的字串使用 UTF‑16 編碼的原因與 Java 類似。當 1995 年 Netscape 公司 首次推出 JavaScript 作業系統)都廣泛使用 UTF‑16 編碼。 由於以上程式語言對字元數量的低估,它們不得不採取“代理對”的方式來表示超過 16 位長度的 Unicode 字元。這是一個不得已為之的無奈之舉。一方面,包含代理對的字串中,一個字元可能佔用 2 位元組或 4 位 元組,從而喪失了等長編碼的優勢。另一方面,處理代理對需要額外增加程式碼,這提高了程式設計的複雜 性和除錯難度。 出於以上原因,部分程式語言提出了一些不同的編碼方案。 肯定變小;而高度由短板決定,因此高度只可能不變(? 仍為短板)或 變小(移動後的 ? 成為短板)。 第 15 章 貪婪 www.hello‑algo.com 363 圖 15‑9 向內移動長板後的狀態 反向思考,我們只有向內收縮短板 ? ,才有可能使容量變大。因為雖然寬度一定變小,但高度可能會變大(移 動後的短板 ? 可能會變長)。例如在圖 15‑10 中,移動短板後面積變大。 圖 15‑10 向內移動短板後的狀態0 码力 | 388 页 | 18.82 MB | 10 月前3
Rust API可靠性分析与验证使用变异后的种子执行程序 No Rust China Conf 2021 – 2022, Online, China RULF:模糊测试用例程序生成 带有剪枝 的BFS 生成API调用序列 反向搜索 合并与优 化 模糊测试用例程序 短序列 长序列 最优序列 集合 合并 优化 构建API依赖图 合成合法的测试 函数 Rust库源代码 泛型函数 单态化 所有权检查 开源于https://github0 码力 | 13 页 | 1.68 MB | 1 年前3
Rust HTTP 协议栈在终端通信场景的实践 - 胡凯Ylong HTTP 客户端库当 前实现的基础功能: ✓ 支持同步逻辑和异步逻辑 ✓ 支持 HTTP/1.1、HTTP/2、 HTTP/3 协议及其组件 ✓ 支持 HTTPS ✓ 支持客户端代理 ✓ 支持自动重定向 ✓ 支持连接管理和复用 ✓ 支持进度显示 ✓ 支持发送 Multipart/ Chunk 格式 body Rust China Conf 2022 – 2023,0 码力 | 26 页 | 1.25 MB | 1 年前3
Comprehensive Rust(简体中文) 202412灵版 Chrome! • UTF16 与 UTF8。学生应注意,Rust 字符串始终采用 UTF8 编码,它们可能会决定在 C++ 端使用 base::UTF16ToUTF8 进行转换,然后再进行反向转换。 • 如果学生决定在 Rust 端进行转换,则需要考虑使用 String::from_utf16 方法,同时注意错误 处理,并确定哪些 CXX 支持的类型可以传输大量 u16s。 • 学生可以通过多种方式设计0 码力 | 359 页 | 1.33 MB | 10 月前3
Rust 程序设计语言 简体中文版 1.85.0两方法来说,它返回自身,因为在这两种情况博文应该保持 Published 状态。 现在需要更新 Post 的 content 方法。我们希望 content 根据 Post 的当前状态返回值,所以 需要 Post 代理一个定义于 state 上的 content 方法,如示例 18-17 所示: 文件名:src/lib.rs impl Post { // --snip-- pub fn content(&self) Wrapper 中 Display 的功能了。 这种做法的缺点在于因为 Wrapper 是一个新类型,它并不具备其所封装值的方法。必须直接在 Wrapper 上实现 Vec的所有方法,这样就可以代理到self.0 上,这就允许我们完全像 Vec 那样对待 Wrapper。如果希望新类型拥有其内部类型的每一个方法,为封装类型实现 Deref trait(第十五章 “使用 Deref Trait 0 码力 | 562 页 | 3.23 MB | 1 月前3
共 9 条
- 1













