Rust編程很簡單
王鵬
- 出版商: 機械工業
- 出版日期: 2025-08-01
- 售價: $654
- 語言: 簡體中文
- ISBN: 7111784375
- ISBN-13: 9787111784371
-
相關分類:
Rust 語言
- 此書翻譯自: Learn Rust in a Month of Lunches (Paperback)
下單後立即進貨 (約4週~6週)
相關主題
商品描述
這是一本專為初學者量身打造的Rust編程指南,無論你是編程新手還是希望快速提升Rust編程技巧的開發者,本書都是你的不二之選。本書共有24章,包括基礎知識,內存、變量和所有權,更覆雜的類型,泛型、Option和Result,集合與錯誤處理,疊代器和閉包,生命周期和內部可變性,多線程,Box和Rust文檔,測試,默認值、構建者模式和Deref,常量、不安全的Rust、外部crates,異步Rust,標準庫、宏等。從基礎概念到高級特性,全面覆蓋,無須覆雜設置。本書都將以清晰易懂的方式,引領你步入Rust編程的殿堂,開啟高效、安全編程的新篇章。
本書適合想要系統學習Rust編程語言的初學者閱讀,也適合經驗豐富的程序員細細品味。
作者簡介
大衛•麥克勞德在成為全職 Rust 開發人員之前,曾是一名教育家、韓英翻譯、項目控制員和撰稿人。
目錄大綱
序
前言
第1章 一些基礎知識/
1.1註釋/
1.2原始類型:整數、字符和
字符串/
1.3類型推斷/
1.4浮點數/
1.5Hello World和打印/
1.6聲明變量和代碼塊/
1.7顯示和調試/
1.8最小值和最大值/
1.9可變性/
1.10變量遮蔽(Shadowing)/
1.11總結/
第2章 內存、變量和所有權/
2.1棧、堆和指針/
2.2字符串/
2.3常量和靜態變量/
2.4引用的更多內容/
2.5可變引用/
2.5.1Rust的引用規則/
2.5.2情景一:只有一個可變引用/
2.5.3情景二:僅有不可變引用/
2.5.4情景三: 問題情況/
2.6再聊聊變量遮蔽/
2.7將引用傳遞給函數/
2.8覆制(Copy)類型/
2.9變量沒有值/
2.10關於打印的更多內容/
2.11總結/
第3章 更覆雜的類型/
3.1集合類型/
3.1.1數組/
3.1.2Vec(向量)/
3.1.3元組/
3.2控制流/
3.2.1基本控制流/
3.2.2匹配語句/
3.2.3循環/
3.3總結/
第4章 構建你自己的類型/
4.1結構體和枚舉概述/
4.1.1結構體/
4.1.2枚舉/
4.1.3將枚舉類型轉換為整數/
4.1.4枚舉使用多種類型/
4.1.5實現結構體和枚舉/
4.2解構/
4.3引用和點運算符/
4.4總結/
第5章 泛型、Option和Result/
5.1泛型/
5.2Option和Result/
5.2.1Option/
5.2.2Result/
5.2.3其他一些模式匹配的方法/
5.3總結/
第6章 更多的集合,更多的錯誤處理/
6.1其他集合/
6.1.1HashMap和BTreeMap/
6.1.2HashSet和BTreeSet/
6.1.3二叉堆/
6.1.4VecDeque/
6.2問號運算符/
6.3當 panic 和 unwrap 是合適的/
6.4總結/
第7章 特性:使不同類型執行相同的操作/
7.1特性:基礎知識/
7.1.1你所需要的只是方法簽名/
7.1.2更覆雜的例子/
7.1.3特性約束/
7.1.4Traits類似於資格認證/
7.2From特性/
7.3孤兒規則/
7.4繞過孤兒規則的方法之一是使用
新類型/
7.5在函數中接受 String 和&str/
7.6總結/
第8章 疊代器和閉包/
8.1方法鏈/
8.2疊代器/
8.3閉包和疊代器中的閉包/
8.4總結/
第9章 再談疊代器和閉包!/
9.1閉包和疊代器的有用方法/
9.1.1映射和過濾/
9.1.2更多的疊代器和相關方法/
9.1.3在疊代器中檢查和查找項目/
9.1.4循環、壓縮、折疊等/
9.2調試宏dbg! 和 .inspect/
9.3總結/
第10章 生命周期和內部可變性/
10.1&str的類型/
10.2生命周期註解/
10.2.1函數中的生命周期/
10.2.2類型中的生命周期註解/
10.2.3匿名生命周期/
10.3內部可變性/
10.3.1Cell/
10.3.2RefCell/
10.3.3Mutex/
10.3.4RwLock/
10.4總結/
第11章 多線程及更多內容/
11.1在函數內部導入和重命名/
11.2todo! 宏/
11.3類型別名/
11.4Cow/
11.5Rc/
11.5.1Rc的存在原因/
11.5.2實踐中使用 Rc/
11.5.3使用 Rc 避免生命周期註解/
11.6多線程/
11.6.1創建線程/
11.6.2使用JoinHandle等待線程
完成/
11.6.3閉包的類型/
11.6.4使用 move 關鍵字/
11.7總結/
第12章 關於閉包、泛型和線程的更多內容/
12.1閉包作為參數/
12.1.1一些簡單的閉包/
12.1.2FnOnce、FnMut和 Fn 之間的
關系/
12.1.3閉包都是獨一無二的/
12.1.4閉包示例/
12.2impl Trait/
12.2.1常規泛型與impl Trait 的比較/
12.2.2使用impl Trait 返回閉包/
12.3Arc/
12.4作用域線程/
12.5通道(Channel)/
12.5.1通道基礎/
12.5.2實現一個通道/
12.6總結/
第13章 Box和Rust文檔/
13.1閱讀 Rust 文檔/
13.1.1assert_eq!/
13.1.2搜索/
13.1.3[src]按鈕/
13.1.4特性信息/
13.1.5屬性/
13.2Box/
13.2.1Box的基礎知識/
13.2.2將 traits 放入 Box/
13.2.3使用 Box 處理多種錯誤類型/
13.2.4將 trait 對象向下轉型為具體
類型/
13.3總結/
第14章 測試/
14.1包和模塊/
14.1.1模塊基礎/
14.1.2關於 pub 關鍵字的更多信息/
14.1.3模塊內的模塊/
14.2測試/
14.2.1只需添加 #[test],它就變成了
一個test/
14.2.2當測試失敗時發生了什麼/
14.2.3編寫多個測試/
14.3測試驅動開發(TDD)/
14.3.1構建一個計算器:從編寫測試
開始/
14.3.2真正將計算器拼湊起來/
14.4總結/
第15章 默認值、構建者模式和Deref/
15.1實現 Default/
15.2構建者模式/
15.2.1編寫構建者方法/
15.2.2在構建者模式中添加最終
檢查/
15.2.3使構建者模式更嚴格/
15.3Deref和DerefMut/
15.3.1Deref基礎知識/
15.3.2實現Deref/
15.3.3實現DerefMut/
15.3.4錯誤使用Deref/
15.4總結/
第16章 常量、不安全的Rust、外部 crates/
16.1常量泛型/
16.2常量函數/
16.3可變的靜態變量/
16.4不安全的 Rust/
16.4.1概述/
16.4.2在不安全的 Rust 中使用靜態可變
變量/
16.4.3Rust中最著名的不安全
方法/
16.4.4以_unchecked 結尾的
方法/
16.5引入外部 crate/
16.5.1Crates和 Cargo.toml/
16.5.2使用 rand crate/
16.5.3使用 rand 函數擲骰子/
16.6總結/
第17章 Rust最流行的crate/
17.1serde/
17.2標準庫中的時間/
17.3chrono/
17.3.1檢查外部庫中的代碼/
17.3.2再次回到 chrono/
17.4rayon/
17.5anyhow和thiserror/
17.5.1anyhow/
17.5.2thiserror/
17.6通用特性實現/
17.7lazy_static和 once_cell/
17.7.1lazy_static:延遲評估的靜態
變量/
17.7.2OnceCell:只能寫入一次的
單元/
17.8總結/
第18章 在你的計算機上使用Rust/
18.1Cargo/
18.1.1為什麼每個人都使用 Cargo/
18.1.2使用 Cargo 和 Rust 編譯時的
操作/
18.2處理用戶輸入/
18.2.1通過 stdin 的用戶輸入/
18.2.2訪問命令行參數/
18.2.3訪問環境變量/
18.3使用文件/
18.3.1創建文件/
18.3.2打開現有文件/
18.3.3使用OpenOptions處理文件/
18.4Cargo doc/
18.5總結/
第19章 更多crate和異步Rust/
19.1reqwest crate/
19.2特性標誌/
19.3異步 Rust/
19.3.1異步基礎/
19.3.2檢查 Future 是否準備好/
19.3.3使用異步運行時/
19.3.4關於異步 Rust 的其他一些
細節/
19.4總結/
第20章 標準庫之旅/
20.1數組/
20.1.1數組現在實現了疊代器/
20.1.2解構和映射數組/
20.1.3使用 from_fn 創建數組/
20.2字符(char)/
20.3整數/
20.3.1檢查操作/
20.3.2Add特性和其他類似特性/
20.4浮點數/
20.5關聯項和關聯常量/
20.5.1關聯函數/
20.5.2關聯類型/
20.5.3關聯常量/
20.6bool/
20.7Vec/
20.8String/
20.9OsString和 CString/
20.10總結/
第21章 繼續遊覽標準庫/
21.1std∷mem/
21.2設置panic鉤子/
21.3查看回溯(backtrace)/
21.4標準庫的前言(prelude)/
21.5其他宏/
21.5.1unreachable!/
21.5.2column!, line!, file!,
module_path!/
21.5.3thread_local!/
21.5.4cfg!/
21.6總結/
第22章 編寫自己的宏/
22.1宏存在的原因/
22.2編寫基本宏/
22.3從標準庫中讀取宏/
22.4使用宏保持代碼整潔/
22.5總結/
第23章 項目實戰——半成品項,需要等你完成/
23.1為最後兩章設置項目/
23.2打字教程/
23.2.1設置和第一段代碼/
23.2.2開發代碼/
23.2.3進一步開發和清理/
23.2.4現在輪到你了/
23.3維基百科文章摘要搜索器/
23.3.1設置和第一段代碼/
23.3.2開發代碼/
23.3.3進一步開發和清理/
23.3.4現在輪到你了/
23.4終端秒表和時鐘/
23.4.1設置和第一段代碼/
23.4.2開發代碼/
23.4.3進一步開發和清理/
23.4.4現在輪到你了/
23.5總結/
第24章 項目實戰,繼續挑戰未完成的項目/
24.1網頁服務器猜詞遊戲/
24.1.1設置和第一段代碼/
24.1.2開發代碼/
24.1.3進一步開發和清理/
24.1.4現在輪到你了/
24.2激光筆/
24.2.1設置和第一段代碼/
24.2.2開發代碼/
24.2.3進一步開發和清理/
24.2.4現在輪到你了/
24.3目錄和文件導航器/
24.3.1設置和第一段代碼/
24.3.2開發代碼/
24.3.3進一步開發和清理/
24.3.4現在輪到你了/
24.4總結/