Rust 程序设计语言 简体中文版 1.85.0第六章介绍枚举(enum)、match 表达式和 if let 控 制流结构。在 Rust 中,创建自定义类型需要用到结构体和枚举。 第七章介绍 Rust 的模块(module)系统,其中的私有性规则用来组织代码和公开的 API(应 用程序接口)。第八章讨论标准库提供的常见集合数据结构,例如 Vector(向量)、字符串和 Hash Map(散列表)。第九章探索 Rust 的错误处理的理念与技术。 宏(macro)。如果是调用函数,则应输入 println(没有 !)。我们将在第二十章详细讨论宏。现在你只需记住,当看到符号 ! 的时候,就意味着调用 的是宏而不是普通函数,并且宏并不总是遵循与函数相同的规则。 16/562Rust 程序设计语言 简体中文版 第二,"Hello, world!" 是一个字符串。我们把这个字符串作为一个参数传递给 println!,字 符串将被打印到屏幕上。 第三, (associated functions)、外部 crate 等知识!后续章节会深入探讨这些概念的细节。在这一 章,我们将主要练习基础内容。 我们会实现一个经典的新手编程问题:猜数字游戏。游戏的规则如下:程序将会生成一个 1 到 100 之间的随机整数。然后提示玩家输入一个猜测值。输入后,程序会指示该猜测是太低还是 太高。如果猜对了,游戏会打印祝贺信息并退出。 准备一个新项目 要创建一个新项目,进入第一章中创建的0 码力 | 562 页 | 3.23 MB | 25 天前3
Rust 程序设计语言简体中文版章介绍枚举(enum)、match 表达式和 if let 控 制流结构。在 Rust 中,创建自定义类型需要用到结构体和枚举。 第 7 章介绍 Rust 的模块(module)系统,其中的私有性规则用来组织代码和公开的 API(应 用程序接口)。第 8 章讨论标准库提供的常见集合数据结构,例如 Vector(向量)、字符串和 Hash Map(散列表)。第 9 章探索 Rust 的错误处理的理念与技术。 宏(macro)。如果是调用函数,则应输入 println (没 有! )。我们将在第十九章详细讨论宏。现在你只需记住,当看到符号 ! 的时候,就意味着调 用的是宏而不是普通函数,并且宏并不总是遵循与函数相同的规则。 第三,"Hello, world!" 是一个字符串。我们把这个字符串作为一个参数传递给 println! , 字符串将被打印到屏幕上。 第四,该行以分号结尾(; ),这代表一个表达式的结束和下一个表达式的开始。大部分 放内存。 Rust 则选择了第三种方式:通过所有权系统管理内存,编译器在编译时会根据一系列的规则 进行检查。如果违反了任何这些规则,程序都不能编译。在运行时,所有权系统的任何功能都 不会减慢程序。 因为所有权对很多程序员来说都是一个新概念,需要一些时间来适应。好消息是随着你对 Rust 和所有权系统的规则越来越有经验,你就越能自然地编写出安全和高效的代码。持之以 恒! 当你理解了所有权,你将有一个坚实的基础来理解那些使0 码力 | 600 页 | 12.99 MB | 1 年前3
应用 waPC (rust) 做软件测试工具to modified request • 模拟数据规则 • 自动化测试 • https://github.com/wasmmock/ wasm_mock_server • 用 rust 打包所有测试需求 Wasm mock server Why use rust ? Software testing tool • 模拟数据规则 • 自动化测试 • Company's own protocol backend product line with complex upstream • Common testing platform 大公司抓包工具的需求 软件测试工具 • 模拟数据规则 • 自动化测试 • Supports http/https/tcp/websocket(MITM) • Can use rust to construct own protocol • websocket stand in for wasm API 抓包 - Wasm Mock Server wasm 工具 does not invent the wheel 软件测试工具 • 模拟数据规则 • 自动化测试 ModifyRequest(req *http.Request) error{ … req_,err:=wasm.Invoke(ctx,req.url.path, req_payload)0 码力 | 30 页 | 2.50 MB | 1 年前3
Rust 语言学习笔记................................................................................. 35 3.2.1 借用和引用的规则 ................................................................ 35 3.2.2 引用的可变性................ 的语言中这些都不需要考虑。 2.Rust 的包管理系统中使用了大量的默认约定,很容易使人头昏脑乱。 而在开发中我们又必须建立模块层级系统,rust 给出了如下方案,在给出了一 些模块的最基本规则外,由开发者更大范围地自定义模块的存在。 首先在一个 rust 项目中,首先定义了 crate 和 module。 1.1 Crate 1.crate 编译后会形成一个库(例如.so)或二进制可执行文件。crate 关键字。外部引用的时候,使用 use 关键字。 1.2.1 module 的可见性 为了让外部能使用模块中 item,需要使用 pub 关键字。外部引用的时候, 使用 use 关键字。 规则很简单,一个 item(函数,绑定,Trait 等),前面加了 pub,那么就它 变成对外可见(访问,调用)的了。 1.2.2 引用外部文件模块 通常,我们会在单独的文件中写模块内容,然后使用0 码力 | 117 页 | 2.24 MB | 1 年前3
⽤ egg 孵化你的 SQL 优化器 - 王润基Hash Join #0 = #2 Scan $1.1, $1.2 Scan $2.1, $2.2 Projection #1, #3 ⼀个 SQL 语句优化的例⼦ 基于规则的优化 (RBO) 基于代价的优化 (CBO) 谓词下推 Join Filter A B Join Filter A B Filter Join A Join B C Join Sort-merge Join Nested Loop Join 连接重排序 连接算法选择 TopN A Order TopN A Limit 查询优化 定义计划节点 定义重写规则 ⽤纯 Rust 编写的第⼀代优化器 Visitor 模式 ⽤纯 Rust 编写的第⼀代优化器 e-class e-node Rewriting Rewriting (* ?x 2) (scan $1 (list $1.1 $1.2)) (scan $2 (list $2.1 $2.2)) ))) 定义语⾔ 构造表达式 2 + x y + * 定义规则:表达式化简 定义规则:算⼦化简 Join Filter A B Join Filter a A B Join A B a & b & c Join Filter a A B Filter0 码力 | 39 页 | 6.48 MB | 1 年前3
Comprehensive Rust(简体中文) 202412. . . . . . . . . . . . . . . . 181 IX Android 185 31 欢迎来到 Android 中的 Rust 186 32 设置 187 33 构建规则 188 33.1 Rust 二进制文件 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 189 33.2 Rust rust_gtest_interop 库 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 231 6 44.2 Rust 测试的 GN 规则 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 231 44.3 chromium::import! 宏 . . 下载 Crate . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 239 46.4 生成 gn 构建规则 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 239 46.5 解决问题 . . . . . . . .0 码力 | 359 页 | 1.33 MB | 10 月前3
Hello 算法 1.0.0 Rust版Excel 表格,其中每个单元格都可以存储一定大 小的数据。 第 3 章 数据结构 hello‑algo.com 53 系统通过内存地址来访问目标位置的数据。如图 3‑2 所示,计算机根据特定规则为表格中的每个单元格分配 编号,确保每个内存空间都有唯一的内存地址。有了这些地址,程序便可以访问内存中的数据。 图 3‑2 内存条、内存空间、内存地址 � 值得说明的是,将内存比作 Excel 字符只需 1 字节,拉丁字母和希腊字母需要 2 字节,常用 第 3 章 数据结构 hello‑algo.com 62 的中文字符需要 3 字节,其他的一些生僻字符需要 4 字节。 UTF‑8 的编码规则并不复杂,分为以下两种情况。 ‧ 对于长度为 1 字节的字符,将最高位设置为 0 ,其余 7 位设置为 Unicode 码点。值得注意的是,ASCII 字符在 Unicode 字符集中占据了前 128 10 呢?实际上,这个 10 能够起到校验符的作用。假设系统从 一个错误的字节开始解析文本,字节头部的 10 能够帮助系统快速判断出异常。 之所以将 10 当作校验符,是因为在 UTF‑8 编码规则下,不可能有字符的最高两位是 10 。这个结论可以用 反证法来证明:假设一个字符的最高两位是 10 ,说明该字符的长度为 1 ,对应 ASCII 码。而 ASCII 码的最 高位应该是 0 ,与假设矛盾。0 码力 | 383 页 | 17.61 MB | 1 年前3
Hello 算法 1.1.0 Rust版Excel 表格,其中每个单元格都可以存储一定大 小的数据。 第 3 章 数据结构 hello‑algo.com 53 系统通过内存地址来访问目标位置的数据。如图 3‑2 所示,计算机根据特定规则为表格中的每个单元格分配 编号,确保每个内存空间都有唯一的内存地址。有了这些地址,程序便可以访问内存中的数据。 图 3‑2 内存条、内存空间、内存地址 Tip 值得说明的是,将内存比作 Excel 字符只需 1 字节,拉丁字母和希腊字母需要 2 字节,常用 第 3 章 数据结构 hello‑algo.com 62 的中文字符需要 3 字节,其他的一些生僻字符需要 4 字节。 UTF‑8 的编码规则并不复杂,分为以下两种情况。 ‧ 对于长度为 1 字节的字符,将最高位设置为 0 ,其余 7 位设置为 Unicode 码点。值得注意的是,ASCII 字符在 Unicode 字符集中占据了前 128 10 呢?实际上,这个 10 能够起到校验符的作用。假设系统从 一个错误的字节开始解析文本,字节头部的 10 能够帮助系统快速判断出异常。 之所以将 10 当作校验符,是因为在 UTF‑8 编码规则下,不可能有字符的最高两位是 10 。这个结论可以用 反证法来证明:假设一个字符的最高两位是 10 ,说明该字符的长度为 1 ,对应 ASCII 码。而 ASCII 码的最 高位应该是 0 ,与假设矛盾。0 码力 | 388 页 | 18.50 MB | 1 年前3
Hello 算法 1.2.0 简体中文 Rust 版Excel 表格,其中每个单元格都可以存储一定大 小的数据。 第 3 章 数据结构 www.hello‑algo.com 53 系统通过内存地址来访问目标位置的数据。如图 3‑2 所示,计算机根据特定规则为表格中的每个单元格分配 编号,确保每个内存空间都有唯一的内存地址。有了这些地址,程序便可以访问内存中的数据。 图 3‑2 内存条、内存空间、内存地址 Tip 值得说明的是,将内存比作 Excel 字节,拉丁字母和希腊字母需要 2 字节,常用 第 3 章 数据结构 www.hello‑algo.com 62 的中文字符需要 3 字节,其他的一些生僻字符需要 4 字节。 UTF‑8 的编码规则并不复杂,分为以下两种情况。 ‧ 对于长度为 1 字节的字符,将最高位设置为 0 ,其余 7 位设置为 Unicode 码点。值得注意的是,ASCII 字符在 Unicode 字符集中占据了前 128 10 呢?实际上,这个 10 能够起到校验符的作用。假设系统从 一个错误的字节开始解析文本,字节头部的 10 能够帮助系统快速判断出异常。 之所以将 10 当作校验符,是因为在 UTF‑8 编码规则下,不可能有字符的最高两位是 10 。这个结论可以用 反证法来证明:假设一个字符的最高两位是 10 ,说明该字符的长度为 1 ,对应 ASCII 码。而 ASCII 码的最 高位应该是 0 ,与假设矛盾。0 码力 | 387 页 | 18.51 MB | 10 月前3
Borsh 安全高效的二进制序列化NEAR 智能合约 Case Study Solana 智能合约 Case Study • non self-describing • 保证序列化后的二进制唯一性和确定性 • 主要序列化规则 Borsh 规范 • 整数采用低字节序( little endian) 存储 • 对于动态长度的集合,先用一个 u32 存储集合 size • 对于原本无序的集合(如 hashmap ),存储时使用0 码力 | 21 页 | 3.35 MB | 1 年前3
共 17 条
- 1
- 2













