Rust 編程從入門到實戰

樊少冰、孟祥蓮

  • 出版商: 清華大學
  • 出版日期: 2022-07-01
  • 售價: $414
  • 貴賓價: 9.5$393
  • 語言: 簡體中文
  • ISBN: 7302603847
  • ISBN-13: 9787302603849
  • 相關分類: Rust 語言
  • 銷售排行: 🥇 2022/10 簡體中文書 銷售排行 第 1 名

    立即出貨 (庫存 < 3)

  • Rust 編程從入門到實戰-preview-1
  • Rust 編程從入門到實戰-preview-2
  • Rust 編程從入門到實戰-preview-3
Rust 編程從入門到實戰-preview-1

買這商品的人也買了...

商品描述

《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