定 價:¥89.00
作 者: | 范長春 |
出版社: | 機械工業(yè)出版社 |
叢編項: | |
標(biāo) 簽: | 暫缺 |
ISBN: | 9787111606420 | 出版時間: | 2018-09-01 | 包裝: | 平裝 |
開本: | 16開 | 頁數(shù): | 字數(shù): |
前言
第一部分 基礎(chǔ)知識
第1章 與君初相見 2
1.1 版本和發(fā)布策略 2
1.2 安裝開發(fā)環(huán)境 4
1.3 Hello World 7
1.4 Prelude 8
1.5 Format格式詳細說明 8
第2章 變量和類型 10
2.1 變量聲明 10
2.1.1 變量遮蔽 12
2.1.2 類型推導(dǎo) 13
2.1.3 類型別名 14
2.1.4 靜態(tài)變量 15
2.1.5 常量 16
2.2 基本數(shù)據(jù)類型 16
2.2.1 bool 16
2.2.2 char 17
2.2.3 整數(shù)類型 17
2.2.4 整數(shù)溢出 19
2.2.5 浮點類型 21
2.2.6 指針類型 23
2.2.7 類型轉(zhuǎn)換 23
2.3 復(fù)合數(shù)據(jù)類型 24
2.3.1 tuple 25
2.3.2 struct 25
2.3.3 tuple struct 27
2.3.4 enum 29
2.3.5 類型遞歸定義 32
第3章 語句和表達式 34
3.1 語句 34
3.2 表達式 34
3.2.1 運算表達式 35
3.2.2 賦值表達式 37
3.2.3 語句塊表達式 38
3.3 if-else 39
3.3.1 loop 40
3.3.2 while 41
3.3.3 for循環(huán) 42
第4章 函數(shù) 44
4.1 簡介 44
4.2 發(fā)散函數(shù) 46
4.3 main函數(shù) 47
4.4 const fn 48
4.5 函數(shù)遞歸調(diào)用 49
第5章 trait 50
5.1 成員方法 50
5.2 靜態(tài)方法 53
5.3 擴展方法 55
5.4 完整函數(shù)調(diào)用語法 56
5.5 trait約束和繼承 58
5.6 Derive 59
5.7 trait別名 60
5.8 標(biāo)準(zhǔn)庫中常見的trait簡介 61
5.8.1 Display和Debug 61
5.8.2 PartialOrd / Ord /
PartialEq / Eq 62
5.8.3 Sized 63
5.8.4 Default 64
5.9 總結(jié) 65
第6章 數(shù)組和字符串 66
6.1 數(shù)組 66
6.1.1 內(nèi)置方法 67
6.1.2 多維數(shù)組 67
6.1.3 數(shù)組切片 67
6.1.4 DST和胖指針 68
6.1.5 Range 70
6.1.6 邊界檢查 72
6.2 字符串 74
6.2.1 &str 74
6.2.2 String 75
第7章 模式解構(gòu) 77
7.1 簡介 77
7.2 match 78
7.2.1 exhaustive 79
7.2.2 下劃線 80
7.2.3 match也是表達式 82
7.2.4 Guards 83
7.2.5 變量綁定 84
7.2.6 ref和mut 85
7.3 if-let和while-let 88
7.4 函數(shù)和閉包參數(shù)做模式解構(gòu) 89
7.5 總結(jié) 90
第8章 深入類型系統(tǒng) 91
8.1 代數(shù)類型系統(tǒng) 91
8.2 Never Type 94
8.3 再談Option類型 97
第9章 宏 102
9.1 簡介macro 102
9.1.1 實現(xiàn)編譯階段檢查 102
9.1.2 實現(xiàn)編譯期計算 103
9.1.3 實現(xiàn)自動代碼生成 103
9.1.4 實現(xiàn)語法擴展 103
9.2 示范型宏 103
9.3 宏1.1 105
第二部分 內(nèi)存安全
第10章 內(nèi)存管理基礎(chǔ) 110
10.1 堆和棧 110
10.2 段錯誤 111
10.3 內(nèi)存安全 112
第11章 所有權(quán)和移動語義 114
11.1 什么是所有權(quán) 114
11.2 移動語義 116
11.3 復(fù)制語義 118
11.4 Box類型 120
11.5 Clone VS. Copy 121
11.5.1 Copy的含義 121
11.5.2 Copy 的實現(xiàn)條件 121
11.5.3 Clone的含義 122
11.5.4 自動derive 123
11.5.5 總結(jié) 123
11.6 析構(gòu)函數(shù) 124
11.6.1 資源管理 125
11.6.2 主動析構(gòu) 126
11.6.3 Drop VS. Copy 129
11.6.4 析構(gòu)標(biāo)記 129
第12章 借用和生命周期 132
12.1 生命周期 132
12.2 借用 132
12.3 借用規(guī)則 134
12.4 生命周期標(biāo)記 136
12.4.1 函數(shù)的生命周期標(biāo)記 136
12.4.2 類型的生命周期標(biāo)記 138
12.5 省略生命周期標(biāo)記 139
第13章 借用檢查 141
13.1 編譯錯誤示例 142
13.2 內(nèi)存不安全示例:修改枚舉 143
13.3 內(nèi)存不安全示例:迭代器
失效 144
13.4 內(nèi)存不安全示例:懸空指針 146
13.5 小結(jié) 148
第14章 NLL(Non-Lexical-
Lifetime) 150
14.1 NLL希望解決的問題 150
14.2 NLL的原理 154
14.3 小結(jié) 157
第15章 內(nèi)部可變性 158
15.1 Cell 158
15.2 RefCell 161
15.3 UnsafeCell 164
第16章 解引用 169
16.1 自定義解引用 169
16.2 自動解引用 171
16.3 自動解引用的用處 171
16.4 有時候需要手動處理 173
16.5 智能指針 175
16.5.1 引用計數(shù) 175
16.5.2 Cow 178
16.6 小結(jié) 180
第17章 泄漏 181
17.1 內(nèi)存泄漏 181
17.2 內(nèi)存泄漏屬于內(nèi)存安全 184
17.3 析構(gòu)函數(shù)泄漏 185
第18章 Panic 190
18.1 什么是panic 190
18.2 Panic實現(xiàn)機制 191
18.3 Panic Safety 192
18.4 小結(jié) 197
第19章 Unsafe 198
19.1 unsafe關(guān)鍵字 198
19.2 裸指針 199
19.3 內(nèi)置函數(shù) 201
19.3.1 transmute 201
19.3.2 內(nèi)存讀寫 202
19.3.3 綜合示例 204
19.4 分割借用 206
19.5 協(xié)變 209
19.5.1 什么是協(xié)變 209
19.5.2 PhantomData 211
19.6 未定義行為 214
19.7 小結(jié) 215
第20章 Vec源碼分析 216
20.1 內(nèi)存申請 217
20.2 內(nèi)存擴容 220
20.3 內(nèi)存釋放 222
20.3.1 Vec的析構(gòu)函數(shù) 222
20.3.2 Drop Check 223
20.4 不安全的邊界 226
20.5 自定義解引用 227
20.6 迭代器 228
20.7 panic safety 231
第三部分 高級抽象
第21章 泛型 234
21.1 數(shù)據(jù)結(jié)構(gòu)中的泛型
......