深入Rust標準庫:必備的Rust語言高階指南

任成珺

  • 出版商: 電子工業
  • 出版日期: 2024-04-01
  • 定價: $708
  • 售價: 8.5$602
  • 語言: 簡體中文
  • 頁數: 434
  • 裝訂: 平裝
  • ISBN: 7121475863
  • ISBN-13: 9787121475863
  • 下單後立即進貨 (約4週~6週)

商品描述

本書詳細分析了1.56版本的Rust標準庫原始碼。
本書首先分析記憶體操作以建立標準函式庫的根函數概念,然後分析基本型別、基本特徵,接著介紹迭代器、內部可變性型別、智慧型指標及容器等級語言特性,
後介紹屬於作業系統環境程式設計的進程管理、並發程式設計、檔案系統、IO系統等。
本書盡量給出程式碼背後的需求及設計思路。
本書也著重從程式碼分析Rust獨特的所有權,生命週期的本質。
本書適合作為已經完成入門階段的Rust程式設計師的下一本指南。
掌握本書的內容後,讀者應該可以完全掌握Rust程式設計的層次技巧。

目錄大綱

第1 章 Rust 標準庫體系概述 1
1.1 CORE 庫 2
1.2 ALLOC 庫 3
1.3 STD 庫 4
1.4 回顧 4
第2 章 Rust 徵小議 5
2.1 泛型小議 6
2.1.1 基於泛型的函數及Trait 6
2.1.2 泛型約束的層次 6
2.2 Rust 內存雜述 7
2.3 取得封裝類型變數的內部變數 9
2.3.1 使用「?」運算子解封裝 9
2.3.2 函數呼叫+自動解引用 10
2.3.3 採用閉 10
2.3.4 取得引用 11
2.3.5 取得所有權 11
2.4 回顧 12
第3 章 內存作 13
3.1 裸指針-不的根源 15
3.1.1 裸指針具體實現 16
3.1.2 固有模組裸指標關聯函數 18
3.1.3 裸指針作 19
3.1.4 裸指針番外 22
3.2 MaybeUninit<T>——未初始化變數方案 23
3.2.1 MaybeUninit<T>定義 23
3.2.2 ManuallyDrop<T>定義 24
3.2.3 MaybeUninit<T>建構子 25
3.2.4 MaybeUninit<T>初始化函數 26
3.2.5 MaybeUninit<T>數組類型作 27
3.2.6 典型案例 28
3.3 裸指針再論 29
3.4 非空裸指針-NonNull<T> 30
3.4.1 建構關聯函數 31
3.4.2 類型轉換函數 32
3.4.3 其他函數 32
3.5 智慧指針的基座-Unique<T> 33
3.6 mem 模組函數 34
3.6.1 建構泛型變數函數 34
3.6.2 泛型變數所有權轉移函數 34
3.6.3 其他函數 36
3.7 動態記憶體申請及釋放 36
3.7.1 記憶體佈局 36
3.7.2 動態記憶體申請與釋放介面 38
3.8 全域變數記憶體探討 . 42
3.9 drop 總結 43
3.10 Rust 所有權、生命週期、借用探討 44
3.11 回顧 47
第4 章 基本類型及基本Trait 48
4.1 固有函數庫 49
4.1.1 原子作函數 49
4.1.2 數學函數及位作函數 49
4.1.3 指令預取化函數、斷言類別函數及堆疊獲取函數 49
4.2 基本類型分析 49
4.2.1 整數型 50
4.2.2 浮點型 53
4.2.3 Option<T>類型 54
4.2.4 引用型態match 語法研究 59
4.2.5 Result<T,E>類型 60
4.3 基本Trait 64
4.3.1 編譯器內建Marker Trait 64
4.3.2 算術運算子Trait 67
4.3.3 “?”運算符Trait 74
4.3.4 範圍運算子Trait 76
4.3.5 索引運算子Trait 78
4.4 回顧 83
第5 章 迭代器 84
5.1 三種迭代器 85
5.2 Iterator Trait 分析 86
5.3 Iterator 與其他集合類型轉換 89
5.4 範圍類型迭代器 90
5.5 切片類型迭代器 93
5.6 字串類型迭代器 98
5.7 數組類型迭代器 99
5.7.1 成員本身迭代器 99
5.7.2 成員引用迭代器 101
5.8 Iterator 適配器 102
5.8.1 Map 適配器 102
5.8.2 Chain 適配器 103
5.8.3 其他適配器 105
5.9 Option<T>適配器 105
5.10 回顧 106
第6 章 基本類型(續) 107
6.1 整數型 108
6.2 布林類型 109
6.3 字元類型 110
6.4 字串類型 114
6.5 切片類型 126
6.6 回顧 128
第7 章 內部可變性類型 129
7.1 Borrow/BorrowMut 分析 130
7.2 Cell<T>類型分析 131
7.2.1 UnsafeCell<T>分析 131
7.2.2 Cell<T>分析 132
7.3 RefCell<T>型分析 134
7.3.1 Borrow Trait 分析 136
7.3.2 BorrowMut Trait 分析 138
7.3.3 RefCell<T>的其他函數 140
7.4 Pin<T>/UnPin<T>類型分析 142
7.5 Lazy<T>類型分析 145
7.6 回顧 149
第8 章 智慧指針 150
8.1 Box<T>類型分析 151
8.2 RawVec<T>型分析 155
8.3 Vec<T>類型分析 161
8.3.1 Vec<T>基礎分析 161
8.3.2 Vec<T>的Iterator Trait 170
8.4 Rc<T>類型分析 173
8.4.1 Rc<T>類型的建構子與析構函式 175
8.4.2 Weak<T>類型分析 179
8.4.3 Rc<T>的其他函數 180
8.5 Arc<T>類型分析 183
8.5.1 Arc<T>類型的建構子與析構函式 183
8.5.2 Weak<T>類型分析 188
8.5.3 Arc<T>的其他函數 190
8.6 Cow<‘a, T>類型分析 194
8.6.1 ToOwned Trait 分析 194
8.6.2 Cow<‘a, T>分析 195
8.7 LinkedList<T>類型分析 197
8.8 String 類型分析 203
8.8.1 初識String 類型分析 203
8.8.2 格式化字串分析 205
8.9 回顧 216
第9 章 使用者態標準庫基礎 217
9.1 Rust 與C 語言互動 218
9.1.1 C 語言的型別適配 219
9.1.2 C 語言的va_list 類型適配 221
9.1.3 C 語言字串類型適配 222
9.1.4 OsString 程式分析 228
9.2 代碼工程中的一個技巧 229
9.3 記憶體管理之STD 庫 230
9.4 系統呼叫(SYSCALL)的封裝 236
9.5 文件描述符及句柄 237
9.5.1 文件描述符所有權設計 237
9.5.2 文件邏輯作適配層 241
9.6 回顧 244
第10 章 進程管理 245
10.1 匿名管道 247
10.2 重定向實現分析 248
10.3 進程管理 251
10.3.1 OS 相關適配層 251
10.3.2 對外介面層 259
10.4 回顧 263
第11 章 並發程式設計 264
11.1 Futex 分析 265
11.2 Mutex<T>型分析 267
11.2.1 OS 相關適配層 267
11.2.2 OS 無關適配層 269
11.2.3 對外介面層 271
11.3 Condvar 類型分析 275
11.3.1 OS 相關適配層 275
11.3.2 OS 無關適配層 277
11.3.3 對外介面層 278
11.4 RwLock<T>類型分析 280
11.4.1 OS 相關適配層 280
11.4.2 OS 無關適配層 286
11.4.3 對外介面層 287
11.5 Barrier 類型分析 290
11.6 Once 類型分析 292
11.7 OnceLock<T>類型分析 296
11.8 LazyLock<T>類型分析 299
11.9 線程分析 300
11.9.1 OS 相關適配層 300
11.9.2 OS 無關適配層 311
11.9.3 對外介面層 313
11.10 線程訊息通訊——MPSC 332
11.10.1 訊息佇列類型-Queue<T> 334
11.10.2 阻塞及喚醒訊號機制 336
11.10.3 一次性通訊通道機制 338
11.10.4 Shared 類型通道 342
11.10.5 對外介面層 350
11.11 Rust 的RUNTIME 357
11.12 回顧 359
第12 章 文件系統 360
12.1 OS 相關適配層 361
12.1.1 路徑名類型分析 361
12.1.2 普通文件作分析 362
12.1.3 目錄作分析 371
12.2 對外介面層 377
12.3 回顧 381
第13 章 I/O 系統 382
13.1 標準輸入Stdin 類型分析 383
13.1.1 Read Trait 384
13.1.2 向量讀/寫類型分析 388
13.1.3 對外介面層 390
13.2 標準輸出Stdout 類型分析 405
13.3 網路I/O 420
13.4 回顧 420
第14 章 非同步程式設計 421
14.1 Rust 協程架構簡析 422
14.1.1 協程概述 422
14.1.2 Rust 的I/O 多路復用 423
14.2 Rust 協程支援類型簡析 428
14.2.1 Rust 協程管理 428
14.2.2 Future Trait 分析 429
14.3 回顧 434