Rust 程式設計語言
前言
介紹
1.
開始入門
1.1.
安裝教學
1.2.
Hello, World!
1.3.
Hello, Cargo!
2.
設計猜謎遊戲程式
3.
常見程式設計概念
3.1.
變數與可變性
3.2.
資料型別
3.3.
函式
3.4.
註解
3.5.
控制流程
4.
理解所有權
4.1.
什麼是所有權?
4.2.
參考與借用
4.3.
切片型別
5.
透過結構體組織相關資料
5.1.
定義與實例化結構體
5.2.
使用結構體的程式範例
5.3.
方法語法
6.
列舉與模式配對
6.1.
定義列舉
6.2.
match 控制流建構子
6.3.
透過 if let 簡化控制流
7.
透過套件、Crate 與模組管理成長中的專案
7.1.
套件與 Crates
7.2.
定義模組來控制作用域與隱私權
7.3.
參考模組項目的路徑
7.4.
透過 use 關鍵字引入路徑
7.5.
將模組拆成不同檔案
8.
常見集合
8.1.
透過向量儲存列表
8.2.
透過字串儲存 UTF-8 編碼的文字
8.3.
透過雜湊映射儲存鍵值配對
9.
錯誤處理
9.1.
panic! 與無法復原的錯誤
9.2.
Result 與可復原的錯誤
9.3.
要 panic! 還是不要 panic!
10.
泛型型別、特徵與生命週期
10.1.
泛型資料型別
10.2.
特徵:定義共同行為
10.3.
透過生命週期驗證參考
11.
編寫自動化測試
11.1.
如何寫測試
11.2.
控制程式如何執行
11.3.
測試組織架構
12.
I/O 專案:建立一個命令列程式
12.1.
接受命令列引數
12.2.
讀取檔案
12.3.
透過重構來改善模組性與錯誤處理
12.4.
透過測試驅動開發完善函式庫功能
12.5.
處理環境變數
12.6.
將錯誤訊息寫入標準錯誤而非標準輸出
13.
函式語言功能:疊代器與閉包
13.1.
閉包:獲取其環境的匿名函式
13.2.
使用疊代器來處理一系列的項目
13.3.
改善我們的 I/O 專案
13.4.
比較效能:迴圈 vs. 疊代器
14.
更多關於 Cargo 與 Crates.io 的內容
14.1.
透過發佈設定檔自訂建構
14.2.
發佈 Crate 到 Crates.io
14.3.
Cargo 工作空間
14.4.
透過 cargo install 安裝執行檔
14.5.
透過自訂命令來擴展 Cargo 的功能
15.
智慧指標
15.1.
使用 Box<T> 指向堆積上的資料
15.2.
透過 Deref 特徵將智慧指標視為一般參考
15.3.
透過 Drop 特徵執行清除程式碼
15.4.
Rc<T> 參考計數智慧指標
15.5.
RefCell<T> 與內部可變性模式
15.6.
參考循環會導致記憶體泄漏
16.
無懼並行
16.1.
使用執行緒同時執行程式碼
16.2.
使用訊息傳遞在執行緒間傳送資料
16.3.
共享狀態並行
16.4.
透過 Sync 與 Send 特徵擴展並行性
17.
Rust 的物件導向程式設計特色
17.1.
物件導向語言的特色
17.2.
允許不同型別數值的特徵物件
17.3.
實作物件導向設計模式
18.
模式與配對
18.1.
所有能使用模式的地方
18.2.
可反駁性:何時模式可能會配對失敗
18.3.
模式語法
19.
進階特色
19.1.
不安全的 Rust
19.2.
進階特徵
19.3.
進階型別
19.4.
進階函式與閉包
19.5.
巨集
20.
最終專案:建立多執行緒網頁伺服器
20.1.
建立單一執行緒的網頁伺服器
20.2.
將單一執行緒伺服器轉換為多執行緒伺服器
20.3.
正常關機與清理
21.
附錄
21.1.
A - 關鍵字
21.2.
B - 運算子與符號
21.3.
C - 可推導的特徵
21.4.
D - 實用開發工具
21.5.
E - 版號
21.6.
F - 本書的翻譯本
21.7.
G - Rust 的開發流程與「每夜版 Rust」
21.8.
H - 中英術語對照表
Light (default)
Rust
Coal
Navy
Ayu
Rust 程式設計語言
附錄
以下段落包含你可能會在你的 Rust 旅途中覺得有用的參考資源。