Rust 程序设计语言 简体中文版 1.85.0[unoptimized + debuginfo] target(s) in 0.59s Rust 警告我们没有使用 read_line 的返回值 Result,说明有一个可能的错误没有处理。 消除警告的正确做法是实际去编写错误处理代码,不过由于我们就是希望程序在出现问题时立 即崩溃,所以直接使用 expect。第九章 会学习如何从错误中恢复。 使用 println! 占位符打印值 除了位于结尾的右花括号,目前为止就只有这一行代码值得讨论一下了: toml 文件: [dependencies] rand = "0.9.0" 下一次运行 cargo build 时,Cargo 会更新可用 crate 的 registry,并根据你指定的新版本重 新评估 rand 的要求。 第十四章会讲到 Cargo 及其生态系统 的更多内容,不过目前你只需要了解这么多。通过 Cargo 复用库文件非常容易,因此 Rustacean 能够编写出由很多包组装而成的更轻巧的项目。 知的并且大小是固定的,你可以 将该指针存储在栈上,不过当需要实际数据时,必须访问指针。想象一下去餐馆就座 吃饭。当进入时,你说明有几个人,餐馆员工会找到一个够大的空桌子并领你们过 去。如果有人来迟了,他们也可以通过询问来找到你们坐在哪。 入栈比在堆上分配内存要快,因为(入栈时)分配器无需为存储新数据去搜索内存空 间;其位置总是在栈顶。相比之下,在堆上分配内存则需要更多的工作,这是因为分 配器必须0 码力 | 562 页 | 3.23 MB | 27 天前3
Rust 语言学习笔记易给人造成困惑。 最主要原因是: 1.Rust 的模块支持层级结构,但这种层级结构本身与文件系统目录的层级结构 是解耦的。 因为 Rust 本身可用于操作系统的开发。 开发者需要自己去定义路径,定义 mod 的层级关系,配合 rust 的默认约定。这 点和 java,go 开发完全不同,在面向 vm 的语言中这些都不需要考虑。 2.Rust 的包管理系统中使用了大量的默认约定,很容易使人头昏脑乱。 bin crate,且 src/main.rs 就是 crate 根。不用在写 cargo.toml 的时候精确到文 件。 ii.另一个约定如果包目录中包含 src/lib.rs,则包带有与其同名的 lib crate, 且 src/lib.rs 是 crate 根。同样不需要精确到文件。 iii. 包可以带有多个二进制 crate,默认将文件置于 src/bin 目录,但是 也可以自由配置。 也可以自由配置。 举例: [[bin]] name = “base_language_demo” 会自动去寻找 src/bin/base_language_demo.rs 作为 bin crate 的编译入口。 [[bin]] name = “src/bin_build_demo/bin_test.rs” 非常清晰地指明了文件名,直接以 src/bin_build_demo/bin_test0 码力 | 117 页 | 2.24 MB | 1 年前3
Rust 程序设计语言简体中文版+ debuginfo] target(s) in 0.59s Rust 警告我们没有使用 read_line 的返回值 Result ,说明有一个可能的错误没有处理。 消除警告的正确做法是实际去编写错误处理代码,不过由于我们就是希望程序在出现问题时立 即崩溃,所以直接使用 expect 。第九章 会学习如何从错误中恢复。 使用 println! 占位符打印值 除了位于结尾的右花括号,目前 有的版本。这使得你拥有了一个自动化的可重现的构建。换句话说,项目会持续使用 0.8.5 直到你显式升级,多亏有了 Cargo.lock 文件。由于 Cargo.lock 文件对于“可重复构建”非常重 要,因此它通常会和项目中的其余代码一样纳入到版本控制系统中。 更新 crate 到一个新版本 当你 确实 需要升级 crate 时,Cargo 提供了这样一个命令,update ,它会忽略 Cargo Running `target/debug/functions` The value of x is: 5 five 函数的返回值是 5 ,所以返回值类型是 i32 。让我们仔细检查一下这段代码。有两个重 要的部分:首先,let x = five(); 这一行表明我们使用函数的返回值初始化一个变量。因为 five 函数返回 5 ,这一行与如下代码相同: let x = 5; 其次,five0 码力 | 600 页 | 12.99 MB | 1 年前3
Hello 算法 1.2.0 简体中文 Rust 版221 10.4 哈希优化策略 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 224 10.5 重识搜索算法 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 226 10.6 小结 . . . . 处于相同 的增长级别,仅相差一个常数项 ? 的倍数。 第 2 章 复杂度分析 www.hello‑algo.com 31 图 2‑8 函数的渐近上界 2.3.3 推算方法 渐近上界的数学味儿有点重,如果你感觉没有完全理解,也无须担心。我们可以先掌握推算方法,在不断的 实践中,就可以逐渐领悟其数学意义。 根据定义,确定 ?(?) 之后,我们便可得到时间复杂度 ?(?(?)) 。那么如何确定渐近上界 算法在不同数据 规模下的效率。 时间复杂度 ‧ 时间复杂度用于衡量算法运行时间随数据量增长的趋势,可以有效评估算法效率,但在某些情况下可 能失效,如在输入的数据量较小或时间复杂度相同时,无法精确对比算法效率的优劣。 ‧ 最差时间复杂度使用大 ? 符号表示,对应函数渐近上界,反映当 ? 趋向正无穷时,操作数量 ?(?) 的 增长级别。 ‧ 推算时间复杂度分为两步,首先统计操作数量,然后判断渐近上界。0 码力 | 387 页 | 18.51 MB | 10 月前3
Hello 算法 1.1.0 Rust版221 10.4 哈希优化策略 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 224 10.5 重识搜索算法 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 226 10.6 小结 . . . . ) 处于相同 的增长级别,仅相差一个常数项 ? 的倍数。 第 2 章 复杂度分析 hello‑algo.com 31 图 2‑8 函数的渐近上界 2.3.3 推算方法 渐近上界的数学味儿有点重,如果你感觉没有完全理解,也无须担心。我们可以先掌握推算方法,在不断的 实践中,就可以逐渐领悟其数学意义。 根据定义,确定 ?(?) 之后,我们便可得到时间复杂度 ?(?(?)) 。那么如何确定渐近上界 算法在不同数据 规模下的效率。 时间复杂度 ‧ 时间复杂度用于衡量算法运行时间随数据量增长的趋势,可以有效评估算法效率,但在某些情况下可 能失效,如在输入的数据量较小或时间复杂度相同时,无法精确对比算法效率的优劣。 ‧ 最差时间复杂度使用大 ? 符号表示,对应函数渐近上界,反映当 ? 趋向正无穷时,操作数量 ?(?) 的 增长级别。 ‧ 推算时间复杂度分为两步,首先统计操作数量,然后判断渐近上界。0 码力 | 388 页 | 18.50 MB | 1 年前3
Hello 算法 1.0.0 Rust版221 10.4 哈希优化策略 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 224 10.5 重识搜索算法 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 227 10.6 小结 . . . . ) 处于相同 的增长级别,仅相差一个常数项 ? 的倍数。 第 2 章 复杂度分析 hello‑algo.com 31 图 2‑8 函数的渐近上界 2.3.3 推算方法 渐近上界的数学味儿有点重,如果你感觉没有完全理解,也无须担心。我们可以先掌握推算方法,在不断的 实践中,就可以逐渐领悟其数学意义。 根据定义,确定 ?(?) 之后,我们便可得到时间复杂度 ?(?(?)) 。那么如何确定渐近上界 算法在不同数据 规模下的效率。 时间复杂度 ‧ 时间复杂度用于衡量算法运行时间随数据量增长的趋势,可以有效评估算法效率,但在某些情况下可 能失效,如在输入的数据量较小或时间复杂度相同时,无法精确对比算法效率的优劣。 ‧ 最差时间复杂度使用大 ? 符号表示,对应函数渐近上界,反映当 ? 趋向正无穷时,操作数量 ?(?) 的 增长级别。 ‧ 推算时间复杂度分为两步,首先统计操作数量,然后判断渐近上界。0 码力 | 383 页 | 17.61 MB | 1 年前3
Hello 算法 1.2.0 繁体中文 Rust 版222 10.4 雜湊最佳化策略 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 225 10.5 重識搜尋演算法 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 227 10.6 小結 . . . . * 的是選讀章節,內容相對困難。如果你的時間有限,可以先跳過。 ‧ 專業術語會使用黑體(紙質版和 PDF 版)或新增下劃線(網頁版),例如陣列(array)。建議記住它們, 以便閱讀文獻。 ‧ 重點內容和總結性語句會 加粗,這類文字值得特別關注。 ‧ 有特指含義的詞句會使用“引號”標註,以避免歧義。 ‧ 當涉及程式語言之間不一致的名詞時,本書均以 Python 為準,例如使用 None 來表示“空”。 */ // 內容註釋,用於詳解程式碼 /** * 多行 * 註釋 */ 0.2.2 在動畫圖解中高效學習 相較於文字,影片和圖片具有更高的資訊密度和結構化程度,更易於理解。在本書中,重點和難點知識將主 要透過動畫以圖解形式展示,而文字則作為解釋與補充。 如果你在閱讀本書時,發現某段內容提供瞭如圖 0‑2 所示的動畫圖解,請以圖為主、以文字為輔,綜合兩者 來理解內容。 圖 0‑20 码力 | 388 页 | 18.82 MB | 10 月前3
Comprehensive Rust(繁体中文)Chromium. • Bare-metal:這是半天的課程,會說明如何使用 Rust 在 bare-metal (嵌入式系統) 上台開發。課程 內容包含微控制器和處理器。 • 並行:這個全天課程著重於 Rust 中的並行問題。我們將探討傳統並行 (使用執行緒和互斥鎖進行先 占式排程) 以及 async/await 並行 (使用 future 進行合作多工處理)。 非課程目標 Rust 是大型 Python 或 JavaScript 等動態程式語言編寫程式,也很適合跟著我們學習 Rust。 這是「演講者備忘稿」的範例。我們會透過這些備忘稿補充投影片中未提到的資訊。這可能包括老師應提及 的重點,以及課堂上典型問題的解答。 11 第 1 部分 講授課程 本頁面的適用對象為課程講師。 以下提供一些背景資訊,說明 Google 內部近期採用的授課方式。 We typically run multiple breaks and time for students to work on exercises. 在講授課程前,建議您注意下列事項: 1. 請熟悉課程教材。我們已附上演講者備忘稿,協助突顯重點,也請您不吝提供更多演講者備忘稿內 容!分享螢幕畫面時,請務必在彈出式視窗中開啟演講者備忘稿 (按一下「Speaker Notes」旁小箭 頭的連結)。如此一來,您就能在課堂上分享簡潔的螢幕畫面。0 码力 | 358 页 | 1.41 MB | 10 月前3
Comprehensive Rust(繁体中文) 202406Chromium. • Bare-metal:這是半天的課程,會說明如何使用 Rust 在 bare-metal (嵌入式系統) 上台開發。課程 內容包含微控制器和處理器。 • 並行:這個全天課程著重於 Rust 中的並行問題。我們將探討傳統並行 (使用執行緒和互斥鎖進行先 占式排程) 以及 async/await 並行 (使用 future 進行合作多工處理)。 非課程目標 Rust 是大型 Python 或 JavaScript 等動態程式語言編寫程式,也很適合跟著我們學習 Rust。 這是「演講者備忘稿」的範例。我們會透過這些備忘稿補充投影片中未提到的資訊。這可能包括老師應提及 的重點,以及課堂上典型問題的解答。 11 第 1 部分 講授課程 本頁面的適用對象為課程講師。 以下提供一些背景資訊,說明 Google 內部近期採用的授課方式。 We typically run multiple breaks and time for students to work on exercises. 在講授課程前,建議您注意下列事項: 1. 請熟悉課程教材。我們已附上演講者備忘稿,協助突顯重點,也請您不吝提供更多演講者備忘稿內 容!分享螢幕畫面時,請務必在彈出式視窗中開啟演講者備忘稿 (按一下「Speaker Notes」旁小箭 頭的連結)。如此一來,您就能在課堂上分享簡潔的螢幕畫面。0 码力 | 356 页 | 1.41 MB | 1 年前3
Rust分布式账务系统 - 胡宇接受转账请求,转换成 events ● 2. 将 events 送入 Raft 共识,等待 events 被多数节点保存 ● 3. 处理被共识的 events ,更新状态机 (账户表) ○ 去重 & 更新余额 ○ 关键路径采用无锁单线程 账户层: Auticuro 分布式账务系统 1 2 3 4 ● 1. 接受转账请求,转换成 events ● 2. 将 events 送入0 码力 | 27 页 | 12.60 MB | 1 年前3
共 20 条
- 1
- 2













