Comprehensive Rust(日语) 202412contains: Segment Duration ようこそ 5 minutes Hello, World 15 minutes 型と値 40 minutes 制御フローの基本 40 minutes 受講生に伝えてください: • They should ask questions when they get them, don't save them to the end. • The class is meant std::mem::transmute(s1); println!("capacity = {capacity}, ptr = {ptr:#x}, len = {len}"); } } 19.2 メモリ管理のアプローチ 伝統的に、言語は大きく 2 つのカテゴリに分類されます。 • 手動でのメモリ管理による完全な制御: C、C++、Pascal など – プログラマーがヒープメモリを割り当てまたは解放するタイミングを決定します。 同じトレイトを実装する型であってもそのサイズは異なることがあります。そのため、上の例で Vec と書くことはできません。 • dyn Pet はコンパイラに、この型が Pet トレイトを実装する動的なサイズの型であることを伝 えます。 • 上の例では pets はスタックに確保され、ベクターのデータはヒープ上にあります。二つのベク 124 ターの要素はファットポインタ です: – ファットポインタは double-width0 码力 | 381 页 | 1.36 MB | 11 月前3
Comprehensive Rust(繁体中文)iN、uN 和 fN 的寬度為 N 位元 • isize 和 usize 等同於指標的寬度 • char 寬度為 32 位元 • bool 寬度為 8 位元 除此之外,還有一些其他語法: • 數字中的底線全都可以省略,寫出來只是為了方便閱讀。換句話說,1_000 可以寫成 1000 (或 10_00),而 123_i64 則可寫成 123i64。 25 5.4 算術 fn interproduct(a: self:使用不重複且可變動的參照,從呼叫端借用物件。之後可以再次使用該物件。 • self:取得物件擁有權,並將其移出呼叫端。方法會成為物件的擁有者。系統會在方法傳回時捨棄 物件 (取消分配),但如果其擁有權已明確傳送的情況例外。具備完整擁有權,不自動等同於具備可變 動性。 • mut self: same as above, but the method can mutate the object. • 沒有接 Deref。也就是說,您可以在 String 上呼叫所有 str 方法。 • String::new 會 傳 回 新 的 空 白 字 串,如 果 您 知 道 要 向 字 串 推 送 多 少 資 料,請 使 用 String::with_capacity。 • String::len 會傳回 String 的大小 (以位元組為單位,可能與以字元為單位的長度不同)。 • String::chars 0 码力 | 358 页 | 1.41 MB | 11 月前3
Comprehensive Rust(繁体中文) 202406iN、uN 和 fN 的寬度為 N 位元 • isize 和 usize 等同於指標的寬度 • char 寬度為 32 位元 • bool 寬度為 8 位元 除此之外,還有一些其他語法: • 數字中的底線全都可以省略,寫出來只是為了方便閱讀。換句話說,1_000 可以寫成 1000 (或 10_00),而 123_i64 則可寫成 123i64。 24 5.4 算術 fn interproduct(a: self:使用不重複且可變動的參照,從呼叫端借用物件。之後可以再次使用該物件。 • self:取得物件擁有權,並將其移出呼叫端。方法會成為物件的擁有者。系統會在方法傳回時捨棄 物件 (取消分配),但如果其擁有權已明確傳送的情況例外。具備完整擁有權,不自動等同於具備可變 動性。 • mut self: same as above, but the method can mutate the object. • 沒有接 Deref。也就是說,您可以在 String 上呼叫所有 str 方法。 • String::new 會 傳 回 新 的 空 白 字 串,如 果 您 知 道 要 向 字 串 推 送 多 少 資 料,請 使 用 String::with_capacity。 • String::len 會傳回 String 的大小 (以位元組為單位,可能與以字元為單位的長度不同)。 • String::chars 0 码力 | 356 页 | 1.41 MB | 1 年前3
Hello 算法 1.2.0 繁体中文 Rust 版和複雜。從巧奪天工的匠人 技藝、到解放生產力的工業產品、再到宇宙運行的科學規律,幾乎每一件平凡或令人驚嘆的事物背後,都隱 藏著精妙的演算法思想。 同樣,資料結構無處不在:大到社會網絡,小到地鐵路線,許多系統都可以建模為“圖”;大到一個國家,小 到一個家庭,社會的主要組織形式呈現出“樹”的特徵;冬天的衣服就像“堆疊”,最先穿上的最後才能脫下; 羽毛球筒則如同“佇列”,一端放入、一端取出;字 第 0 章 前言 www.hello‑algo.com 2 0.1 關於本書 本專案旨在建立一本開源、免費、對新手友好的資料結構與演算法入門教程。 ‧ 全書採用動畫圖解,內容清晰易懂、學習曲線平滑,引導初學者探索資料結構與演算法的知識地圖。 ‧ 源程式碼可一鍵執行,幫助讀者在練習中提升程式設計技能,瞭解演算法工作原理和資料結構底層實 現。 ‧ 提倡讀者互助學習,歡迎大家在評論區提出問題與分享見解,在交流討論中共同進步。 為了獲得最佳的閱讀體驗,建議你通讀本節內容。 0.2.1 行文風格約定 ‧ 標題後標註 * 的是選讀章節,內容相對困難。如果你的時間有限,可以先跳過。 ‧ 專業術語會使用黑體(紙質版和 PDF 版)或新增下劃線(網頁版),例如陣列(array)。建議記住它們, 以便閱讀文獻。 ‧ 重點內容和總結性語句會 加粗,這類文字值得特別關注。 ‧ 有特指含義的詞句會使用“引號”標註,以避免歧義。 ‧ 當涉及程式語言之間不一致的名詞時,本書均以0 码力 | 388 页 | 18.82 MB | 10 月前3
Rust 语言学习笔记神秘的编程领域,只为浸淫多 年的极少数人所触及,也只有他们能避开那些臭名昭著的陷阱。即使谨慎的实 践者,亦唯恐代码出现漏洞、崩溃或损坏。 Rust 破除了这些障碍,其消除了旧的陷阱并提供了伴你一路同行的友好、精良 的工具。想要 “深入” 底层控制的程序员可以使用 Rust,无需冒着常见的崩 溃或安全漏洞的风险,也无需学习时常改变的工具链的最新知识。其语言本身 更是被设计为自然而然的引导你编写出在运行速度和内存使用上都十分高效的 表示,当前模块路径的上一级路径,可以理解成父模块。 另外,还有一种特殊的路径形式: ::xxx::yyy 它表示,引用根路径下的 xxx::yyy,这个根路径,指的是当前 crate 的根路 径。 1.2.5 Re-exporting 我们可以结合使用 pub use 来实现 Re-exporting。Re-exporting 的字面 意思就是 重新导出。它的意思是这样的,把深层的 ("Got: {}", received); } 这一次,在创建新线程之前,我们对通道的发送端调用了 clone 方法。这会 给我们一个可以传递给第一个新建线程的发送端句柄。我们会将原始的通道发 送端传递给第二个新建线程。这样就会有两个线程,每个线程将向通道的接收 端发送不同的消息。 如果运行这些代码,你可能会看到这样的输出(两次的运行结果): Got: hi Got: more Got:0 码力 | 117 页 | 2.24 MB | 1 年前3
Hello 算法 1.1.0 Rust版些相似之处,比如都依赖最优子结构性质,但 工作原理不同。 ‧ 动态规划会根据之前阶段的所有决策来考虑当前决策,并使用过去子问题的解来构建当前子问题的解。 ‧ 贪心算法不会考虑过去的决策,而是一路向前地进行贪心选择,不断缩小问题范围,直至问题被解决。 我们先通过例题“零钱兑换”了解贪心算法的工作原理。这道题已经在“完全背包问题”章节中介绍过,相 信你对它并不陌生。 Question 给定 load factor 负载因子 負載因子 separate chaining 链式地址 鏈結位址 open addressing 开放寻址 開放定址 linear probing 线性探测 線性探查 lazy deletion 懒删除 懶刪除 binary tree 二叉树 二元樹 tree node 树节点 樹節點 left‑child node 左子节点 左子節點 第 16 章 English 简体中文 繁体中文 disconnected graph 非连通图 非連通圖 weighted graph 有权图 有權圖 adjacency 邻接 鄰接 path 路径 路徑 in‑degree 入度 入度 out‑degree 出度 出度 adjacency matrix 邻接矩阵 鄰接矩陣 adjacency list 邻接表 鄰接表 breadth‑first0 码力 | 388 页 | 18.50 MB | 1 年前3
Hello 算法 1.2.0 简体中文 Rust 版些相似之处,比如都依赖最优子结构性质,但 工作原理不同。 ‧ 动态规划会根据之前阶段的所有决策来考虑当前决策,并使用过去子问题的解来构建当前子问题的解。 ‧ 贪心算法不会考虑过去的决策,而是一路向前地进行贪心选择,不断缩小问题范围,直至问题被解决。 我们先通过例题“零钱兑换”了解贪心算法的工作原理。这道题已经在“完全背包问题”章节中介绍过,相 信你对它并不陌生。 Question 给定 load factor 负载因子 負載因子 separate chaining 链式地址 鏈結位址 open addressing 开放寻址 開放定址 linear probing 线性探测 線性探查 lazy deletion 懒删除 懶刪除 binary tree 二叉树 二元樹 tree node 树节点 樹節點 left‑child node 左子节点 左子節點 right‑child connected graph 连通图 連通圖 disconnected graph 非连通图 非連通圖 weighted graph 有权图 有權圖 adjacency 邻接 鄰接 path 路径 路徑 in‑degree 入度 入度 out‑degree 出度 出度 adjacency matrix 邻接矩阵 鄰接矩陣 adjacency list 邻接表 鄰接表 breadth‑first0 码力 | 387 页 | 18.51 MB | 10 月前3
Rust 程序设计语言 简体中文版 1.85.0看,这是一个神秘的编程领域,只为浸润多年的极少数人所触及,也只有他们能避开那些臭名 昭著的陷阱。即使谨慎的实践者,亦唯恐代码出现漏洞、崩溃或损坏。 Rust 破除了这些障碍:它消除了旧的陷阱,并提供了伴你一路同行的友好、精良的工具。想 要 “深入” 底层控制的程序员可以使用 Rust,无需时刻担心出现崩溃或安全漏洞,也无需因为 工具链不靠谱而被迫去了解其中的细节。更妙的是,语言设计本身会自然而然地引导你编写出 2. 值在任一时刻有且只有一个所有者。 3. 当所有者离开作用域,这个值将被丢弃。 变量作用域 既然我们已经掌握了基本语法,将不会在之后的例子中包含 fn main() { 代码,所以如果你是 一路跟过来的,必须手动将之后例子的代码放入一个 main 函数中。这样,例子将显得更加简 明,使我们可以关注实际细节而不是样板代码。 在所有权的第一个例子中,我们看看一些变量的 作用域(scope)。作用域是一个项(item) std::io::Write; 示例 7-19: 通过两行 use 语句引入两个路径,其中一个是另一个的子路径 两个路径的相同部分是 std::io,这正是第一个路径。为了在一行 use 语句中引入这两个路 径,可以在嵌套路径中使用 self,如示例 7-20 所示。 文件名:src/lib.rs use std::io::{self, Write}; 示例 7-20: 将示例 7-19 中部分重复的路径合并为一个0 码力 | 562 页 | 3.23 MB | 1 月前3
新一代分布式高性能图数据库的构建 - 沈游人务实现,在保障一致性的前提下,提供优 秀的分析性能 分布式事务技术方案 MVOCC 处理流程 全面的算法支持 覆盖全部常用算法 • 路径计算、社区检测、相似度计算 等 丰富的自研图算法 • 环路识别、链路识别、节点间全路径、 发散子图识别、汇聚子图识别、金字塔 子图识别 与图数据库的深度结合 使用 cypher 语句直接调用 支持在用户筛选出的子图上计算 灵活的参数设定 自研图计算系统架构、极致的性能优化0 码力 | 38 页 | 24.68 MB | 1 年前3
Rust语言核心竞争力-庄晓立二者应用场景相似,发展目标和方向大体相当 • 在互相竞争和互相学习中前进 • Rust暂时领先(内存安全),步伐较快 • C++ 1x 暂时落后,步伐稍慢,多一个历史包袱 • C++ 11 …… 14 …… 17 …… 2x (路还很长) • 姗姗来迟的11, 小幅改进的14, 眼前的17, 未来的 2x… • 本文后面不再涉及现代C++,因为对其了解有限 系统编程小结 • 系统编程是软件行业的基石 • 很多基础性的、平台性的大中型项目……0 码力 | 51 页 | 1.09 MB | 1 年前3
共 11 条
- 1
- 2













