買這商品的人也買了...
-
$880$695 -
$420$332 -
$580$458 -
$305圖解 HTTP
-
$1,200$792 -
$780$616 -
$580$493 -
$179編程珠璣 : 續 (修訂版) (More Programming Pearls: Confessions of a Coder)
-
$420$332 -
$474$450 -
$234$222 -
$490$387 -
$1,550$1,473 -
$480$379 -
$480$408 -
$403Go語言編程入門與實戰技巧
-
$403DAG 區塊鏈技術:原理與實踐
-
$1,280$998 -
$580$522 -
$653$614 -
$480$408 -
$880$748 -
$720$562 -
$600$468 -
$650$507
相關主題
商品描述
本書詳細描述了Rust語言的基本語法,穿插講解一部分高級使用技巧,並以更容易理解的方式解釋其背後的設計思想。
全書總共分五個部分。第一部分介紹Rust基本語法,因為對任何程序設計語言來說,語法都是基礎,學習這部分是理解其他部分的前提。
第二部分介紹屬於Rust獨一無二的內存管理方式。它設計了一組全新的機制,既保證了安全性,又保持了強大的內存佈局控制力,而且沒有額外性能損失。這部分是本書的重點和核心所在,也是Rust語言的思想內核精髓之處。
第三部分介紹Rust的抽象表達能力。它支持多種編程範式,以及較為強大的抽象表達能力。第四部分介紹併發模型。在目前這個階段,對並行編程的支持是新一代編程語言不可繞過的重要話題。
Rust也吸收了業界最新的發展成果,對併發有良好支持。第五部分介紹一些實用設施。Rust語言有許多創新,但它絕不是高高在上孤芳自賞的類型,設計者在設計過程中充分考慮了語言的工程實用性。眾多在其他語言中被證明過的優秀實踐被吸收了進來,有利於提升實際工作效率。通過此書,讀者能夠深入透徹地理解Rust的高階特性,比如代數類型系統、生命周期、借用檢查、內部可變性、線程安全、泛型、閉包、迭代器、生成器等。可作為參考書供學生、軟件工程師、研究人員以及其他對Rust語言感興趣的讀者參考。本書所揭示的Rust編程語言的設計思想對於理解其他系統編程語言,如C++,也非常有幫助。
作者簡介
范長春,中國科學院自動化研究所博士,Rust開源項目貢獻者,前微軟員工。目前就職于synopsys公司參與源代碼靜態檢查工具coverity軟體的開發工作。
喜歡研究編譯器以及源代碼靜態檢查。
在網上撰寫了大量關於Rust語言的技術文章,得到了不錯的反響。
目錄大綱
前言
第一部分基礎知識
第1章與君初相見2
1.1版本和發布策略2
1.2安裝開發環境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類型推導13
2.1.3類型別名14
2.1.4靜態變量15
2.1.5常量16
2.2基本數據類型16
2.2.1 bool 16
2.2.2 char 17
2.2.3整數類型17
2.2.4整數溢出19
2.2.5浮點類型21
2.2.6指針類型23
2.2.7類型轉換23
2.3複合數據類型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循環42
第4章函數44
4.1簡介44
4.2發散函數46
4.3 main函數47
4.4 const fn 48
4.5函數遞歸調用49
第5章trait 50
5.1成員方法50
5.2靜態方法53
5.3擴展方法55
5.4完整函數調用語法56
5.5 trait約束和繼承58
5.6 Derive 59
5.7 trait別名60
5.8標準庫中常見的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總結65
第6章數組和字符串66
6.1數組66
6.1.1內置方法67
6.1.2多維數組67
6.1.3數組切片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章模式解構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函數和閉包參數做模式解構89
7.5總結90
第8章深入類型系統91
8.1代數類型系統91
8.2 Never Type 94
8.3再談Option類型97
第9章宏102
9.1簡介macro 102
9.1.1實現編譯階段檢查102
9.1.2實現編譯期計算103
9.1.3實現自動代碼生成103
9.1.4實現語法擴展103
9.2示範型宏103
9.3宏1.1 105
第二部分內存安全
第10章內存管理基礎110
10.1堆和棧110
10.2段錯誤111
10.3內存安全112
第11章所有權和移動語義114
11.1什麼是所有權114
11.2移動語義116
11.3複製語義118
11.4 Box類型120
11.5 Clone VS. Copy 121
11.5.1 Copy的含義121
11.5.2 Copy的實現條件121
11.5.3 Clone的含義122
11.5.4自動derive 123
11.5.5總結123
11.6析構函數124
11.6.1資源管理125
11.6.2主動析構126
11.6.3 Drop VS. Copy 129
11.6.4析構標記129
第12章借用和生命週期132
12.1生命週期132
12.2借用132
12.3借用規則134
12.4生命週期標記136
12.4.1函數的生命週期標記136
12.4.2類型的生命週期標記138
12.5省略生命週期標記139
第13章借用檢查141
13.1編譯錯誤示例142
13.2內存不安全示例:修改枚舉143
13.3內存不安全示例:迭代器
失效144
13.4內存不安全示例:懸空指針146
13.5小結148
第14章NLL(Non-Lexical-
Lifetime) 150
14.1 NLL希望解決的問題150
14.2 NLL的原理154
14.3小結157
第15章內部可變性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引用計數175
16.5.2 Cow 178
16.6小結180
第17章洩漏181
17.1內存洩漏181
17.2內存洩漏屬於內存安全184
17.3析構函數洩漏185
第18章Panic 190
18.1什麼是panic 190
18.2 Panic實現機制191
18.3 Panic Safety 192
18.4小結197
第19章Unsafe 198
19.1 unsafe關鍵字198
19.2裸指針199
19.3內置函數201
19.3.1 transmute 201
19.3.2內存讀寫202
19.3.3綜合示例204
19.4分割借用206
19.5協變209
19.5.1什麼是協變209
19.5.2 PhantomData 211
19.6未定義行為214
19.7小結215
第20章Vec源碼分析216
20.1內存申請217
20.2內存擴容220
20.3內存釋放222
20.3.1 Vec的析構函數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數據結構中的泛型