Rust 編程從入門到實戰

Rust 編程從入門到實戰

作者: 樊少冰 孟祥蓮
出版社: 清華大學
出版在: 2022-07-01
ISBN-13: 9787302603849
ISBN-10: 7302603847





內容描述


《Rust編程從入門到實戰》是一部Rust編程語言的編程手冊,第1~3章為Rust前置知識,介紹了開發環境搭建、第一個Rust程序以及語言的輸入輸出;第4~16章為Rust基礎語法知識,介紹了Rust基礎的語法和必要的語言使用規則,其中包括Rust所有權、生命周期以及特性等重要語言概念的介紹;第17~27章為Rust實用操作,介紹了文件與I/O、無畏並發、Web編程等重要的經典開發實戰以及屬性、宏、“不安全”語法等Rust高級編程。 《Rust編程從入門到實戰》適合Rust語言初學者學習使用,也可供Rust開發者參考使用,還可作為高等院校相關專業的教材。


目錄大綱


第1章  Rust編程語言概述 1
1.1  編程語言 1
1.2  Rust語言 2
1.2.1  為什麽選擇Rust 2
1.2.2  在哪裡能使用Rust 2
1.3  Hello, Rust! 3
第2章  開發環境 4
2.1  工具鏈 4
2.1.1  Windows系統上的安裝 4
2.1.2  在GNU/Linux上安裝 6
2.1.3  在其他操作系統上安裝 7
2.1.4  卸載 7
2.2  集成開發環境 7
2.3  CLion安裝與部署 8
2.3.1  下載和安裝CLion 8
2.3.2  配置CLion 9
第3章  開發命令行程序 13
3.1  輸出到命令行 13
3.2  詳細輸出 14
3.3  從命令行輸入 15
3.4  從命令參數中獲取 16
第4章  基礎語法 18
4.1  變量 18
4.2  重影 20
4.3  常量 20
4.4  靜態變量 21
第5章  Rust數據類型 23
5.1  整數型 23
5.2  浮點數型 24
5.3  數學運算 24
5.3.1  基礎運算 24
5.3.2  數學函數 24
5.4  布爾型 25
5.5  邏輯運算 25
5.6  字符型 26
5.7  字符串 27
5.8  元組 28
5.9  數組 29
第6章  註釋 31
6.1  常規註釋 31
6.2  說明文檔註釋 31
6.3  生成工程文檔 33
第7章  函數 34
7.1  函數的聲明 34
7.2  函數語句與函數表達式 35
7.2.1  函數語句與表達式 35
7.2.2  函數返回值 35
7.2.3  函數表達式 36
7.3  函數對象 37
7.4  閉包(Lambda表達式) 37
第8章  條件語句 39
8.1  if-else 語句 39
8.2  三元運算符 40
8.3  match語句——Rust中的switch 41
 
 
第9章  循環結構 43
9.1  while循環 43
9.2  for 循環 44
9.3  loop 循環 45
第10章  所有權 47
10.1  內存管理 47
10.1.1  內存的概念 47
10.1.2  主流的內存管理機制 48
10.2  所有權機制 48
10.2.1  變量範圍 49
10.2.2  生命周期 49
10.2.3  轉移 50
10.2.4  復制 50
10.2.5  引用和借用 51
10.2.6  垂懸引用 51
10.3  與函數相關的所有權 52
10.3.1  參數所有權 52
10.3.2  返回值所有權 53
10.4  引用類型 54
10.4.1  引用的用途 54
10.4.2  可變引用 55
10.4.3  解引用運算符 56
第11章  切片類型 58
11.1  字符串切片 58
11.2  數組切片 59
第12章  復合類型 60
12.1  結構體 60
12.1.1  結構體的定義 60
12.1.2  結構體的實例化 60
12.1.3  結構體所有權 61
12.1.4  結構體方法 64
12.1.5  元組結構體 66
12.1.6  單元結構體 66
12.2  枚舉類 66
12.2.1  枚舉類的定義 67
12.2.2  枚舉類的match語法 68
12.2.3  if-let語法 69
12.2.4  枚舉類的方法 70
第13章  泛型 72
13.1  泛型函數 72
13.2  復合類型的泛型 73
13.2.1  泛型結構體 73
13.2.2  泛型枚舉類 74
13.3  impl泛型 75
13.3.1  對泛型類實現方法 75
13.3.2  對具體類實現方法 76
13.3.3  泛型方法 76
第14章  錯誤處理與空值 78
14.1  錯誤與錯誤處理 78
14.2  不可恢復錯誤 78
14.3  可恢復錯誤 79
14.3.1  Result枚舉類 80
14.3.2  可恢復錯誤的傳遞 81
14.3.3  Error類型和它的kind方法 82
14.4 “空引用” 83
14.4.1  Null的概念 84
14.4.2  Option枚舉類 84
第15章  工程組織和訪問權 86
15.1  工程組織概念 86
15.1.1  箱 86
15.1.2  包 87
15.1.3  模塊 87
15.2  訪問權 88
15.2.1  模塊訪問權 88
15.2.2  結構體訪問權 89
15.2.3  枚舉類訪問權 90
15.3  use 關鍵字 90
15.4  引用標準庫 91
15.5  多源文件工程 92
15.5.1  新建源文件 92
15.5.2  運行多源文件程序 92
15.6  Cargo 93
15.6.1  Cargo是什麽 93
15.6.2  Cargo功能 93
15.6.3  Cargo導入外部包 94
第16章  特性 96
16.1  定義特性 96
16.2  實現特性 96
16.3  默認特性 98
16.4  特性作參數 99
16.4.1  常規特性參數 99
16.4.2  泛型特性參數 100
16.4.3  特性疊加 101
16.5  特性作返回值 102
16.6  有條件的實現方法 104
第17章  文件與I/O 105
17.1  關於文件的概念 105
17.1.1  文件 105
17.1.2  流 105
17.2  打開文件 106
17.2.1  打開文件的種類 106
17.2.2  只讀模式 106
17.3  創建新文件模式 109
17.3.1  創建新文件 109
17.3.2  覆蓋文件 110
17.4  追加模式 110
17.5  自定義模式打開文件 111
17.5.1  OpenOptions對象 111
17.5.2  以讀寫模式打開文件 112
17.6  寫入和讀取二進制信息 114
17.7  文件系統 115
17.7.1  列出目錄 115
17.7.2  創建目錄 116
17.7.3  刪除文件或目錄 116
第18章  數據結構與集合 118
18.1  線性數據結構 118
18.1.1  向量 120
18.1.2  雙端向量 124
18.1.3  鏈表 125
18.2  字符串 125
18.2.1  將數據轉換為字符串 126
18.2.2  拼接字符串 127
18.2.3  字符串截取 128
18.2.4  UTF-8編碼 129
18.3  映射表 131
18.3.1  散列映射表 131
18.3.2  B樹映射表 132
18.4  集 133
18.4.1  散列集 133
18.4.2  B樹集 135
18.5  堆 136
18.5.1  二叉堆 136
18.5.2  從向量創建堆 137
第19章  面向對象編程思想的實現 139
19.1  類 139
19.2  對象 141
19.3  封裝 142
19.4  繼承 143
19.5  多態 145
第20章  堆內存區 147
20.1  內存的分配方式 147
20.2  Box類型 148
20.3  Box解引用特性 150
20.4  dyn關鍵字 151
20.5  Box的所有權 151
第21章  高級引用 152
21.1  Box引用 152
21.2  Rc——引用計數 152
21.3  Mutex——互斥鎖 155
第22章  運算符方法 158
22.1  Rust運算符方法 158
22.2  實現運算符方法 159
22.2.1  實現復數加法 159
22.2.2  引用類型運算符方法實現 160
22.3  支持實現運算符方法的運算符 161
22.4  特殊的運算符 162
22.4.1  Deref和DerefMut特性 162
22.4.2  Drop特性 163
22.4.3  Fn、FnMut和FnOnce特性 164
第23章  無畏並發 168
23.1  並發和問題 168
23.1.1  數據共享 168
23.1.2  數據回收 169
23.1.3  死鎖 169
23.1.4  線程通信 169
23.2  多線程 170
23.3  線程通信 171
23.4  Arc線程安全引用計數 173
23.5  應對互斥鎖死鎖 175
23.5.1  用一個互斥鎖保護 177
23.5.2  使用“標志互斥鎖” 178
第24章  屬性 180
24.1  屬性的使用 180
24.2  條件編譯屬性 181
24.2.1  cfg 屬性 181
24.2.2  test條件編譯 182
24.2.3 “cfg_attr”屬性 183
24.3  derive 派生屬性 183
24.4  診斷屬性 185
24.4.1  lint檢查屬性 185
24.4.2  deprecated屬性 187
24.4.3  must_use屬性 187
24.5  模塊路徑屬性 188
24.6  其他屬性 189
第25章  宏 190
25.1  宏的使用 190
25.2  宏的定義 191
25.3  過程宏 193
25.3.1  類函數過程宏 193
25.3.2  派生過程宏 196
25.3.3  屬性宏 198
第26章  “不安全”語法 200
26.1 “不安全”域 200
26.2  原始指針 201
26.3 “不安全”的函數和方法 202
26.4  訪問靜態變量 203
26.5 “不安全”特性 204
26.6  共享體 205
第27章  Web服務器程序 208
27.1  TCP簡介 208
27.1.1  建立TCP連接 209
27.1.2  搭建TCP服務器 209
27.2  UDP簡介 212
27.3  簡易的HTTP服務器 213
  
IV
 
 
V




相關書籍

Pro Linux System Administration: Learn to Build Systems for Your Business Using Free and Open Source Software

作者 Dennis Matotek James Turnbull Peter Lieverdink

2022-07-01

邁向 Linux 工程師之路:Superuser 一定要懂的技術與運用, 2/e (How Linux Works: What Every Superuser Should Know, 2/e)

作者 Brian Ward

2022-07-01

異構蜂窩網絡關鍵理論與技術

作者 肖海林

2022-07-01