簡體周年慶
Rust編程與項目實戰

Rust編程與項目實戰

  • 定價:594
  • 優惠價:87517
  • 運送方式:
  • 臺灣與離島
  • 海外
  • 可配送點:台灣、蘭嶼、綠島、澎湖、金門、馬祖
  • 可取貨點:台灣、蘭嶼、綠島、澎湖、金門、馬祖
載入中...
  • 分享
 

內容簡介

Rust是一門系統編程語言,專注于安全,尤其是併發安全,它也是支持函數式、命令式以及泛型等編程範式的多範式語言。標準Rust在語法和性能上和標準C 類似,設計者可以在保證性能的同時提供更好的內存安全。《Rust編程與項目實戰》詳解Rust編程技巧,配套示例源碼、PPT課件、作者QQ答疑服務。

《Rust編程與項目實戰》共分17章,內容包括Rust基礎,搭建Rust開發環境,常量、變量和標量數據類型,運算符和格式化輸出,選擇結構,控制結構,函數,複合數據類型,指針,模塊化編程和標準庫,標準庫中的字符串對象,多線程編程,標準輸入輸出和命令行參數,文件讀寫,網絡編程實戰,圖像和遊戲開發實戰,數據分析實戰。

《Rust編程與項目實戰》適用于Rust編程初學者、Rust應用開發人員、高併發和分布式開發人員、Web Assembly開發人員、遊戲開發人員以及嵌入式應用開發人員。本書也適合作為高等院校或高職高專Rust編程課程的教材。
 

作者介紹

朱文偉,名校計算機專業統招碩士,20多年C\C、Java開發經驗。主導開發過密碼、圖形、人工智能等產品。精通Linux、Windows系統開發及數據庫開發技術。著有圖書:

《嵌入式Linux驅動開發實踐》《高性能Linux網絡編程核心技術揭秘》《Linux C/C 服務器開發實踐》《Qt 6.x從入門到精通》《PyQt 5從入門到精通》《Linux C與C 一線開發實踐》《Visual C 2017從入門到精通》《Windows C/C 加密解密實戰》《密碼學原理與Java實現》《OpenCV 4.5計算機視覺開發實戰(基於VC )》《OpenCV 4.5計算機視覺開發實戰:基於Python》。
 

目錄

第 1 章  Rust基礎 1
1.1  Rust概述 1
1.1.1  Rust的來源與定義 1
1.1.2  Rust適合做什麼 2
1.1.3  Rust的特點 3
1.1.4  Rust和其他語言的總體比較 4
1.2  Rust到底值不值得學 5
1.2.1  Rust是一種全面創新的語言 6
1.2.2  引用和借用 8
1.2.3  生命期 9
1.2.4  編譯時檢查和運行時開銷 10
1.2.5  有限的面向對象特徵 11
1.2.6  擴展庫支持 13
1.2.7  Rust是一種可以進行底層開發的高級語言 14

第 2 章  搭建Rust開發環境 15
2.1  搭建Windows下的Rust開發環境 15
2.1.1  安裝vs_buildtools 15
2.1.2  安裝Rust相關工具 16
2.1.3  第一個Rust項目 17
2.1.4  VS Code搭建Rust開發環境 18
2.1.5  VS Code單步調試Rust程序 20
2.1.6  VS Code自動清除輸出窗口 22
2.1.7  VS Code修改程序自動保存 23
2.1.8  關閉rust-analyzer插件的自動類型提示 23
2.2  在Linux下搭建Rust開發環境 24
2.2.1  安裝基本開發工具 24
2.2.2  啟用SSH 24
2.2.3  安裝C編譯工具 26
2.2.4  安裝和配置Rust編譯環境 27
2.2.5  命令行開發Rust程序 28
2.2.6  在VS Code中開發遠程Rust程序 30

第 3 章  常量、變量和標量數據類型 39
3.1  Rust程序結構 39
3.2  注釋 41
3.3  常量 42
3.3.1  常量的定義 42
3.3.2  直接常量 42
3.3.3  const常量 43
3.4  變量 44
3.4.1  Rust中的關鍵字 45
3.4.2  變量的命名規則 46
3.4.3  變量的定義 47
3.4.4  變量的賦值 48
3.4.5  變量的初始化 49
3.4.6  變量的可變性 49
3.4.7  變量遮蔽 50
3.4.8  字符串變量 51
3.5  數據類型的定義和分類 52
3.6  標量數據類型 53
3.6.1  整型 53
3.6.2  布爾型 57
3.6.3  字符類型 57
3.6.4  浮點型 58
3.6.5  得到變量的字節數 59
3.7  常數的數據類型 60
3.8  作用域 61
3.9  所有權 63
3.9.1  讓我們回憶棧和堆 63
3.9.2  什麼是所有權 63

第 4 章  運算符和格式化輸出 65
4.1  運算符 65
4.1.1  賦值運算符 65
4.1.2  數學運算符 66
4.1.3  組合運算符 66
4.1.4  關係運算符 67
4.1.5  邏輯運算符 68
4.1.6  位運算符 69
4.1.7  變量類型轉換運算符 70
4.1.8  運算符的優先級 71
4.2  格式化輸出宏 72
4.2.1  默認輸出 73
4.2.2  通配符{} 73
4.2.3  通配符和位置 73
4.2.4  通配符和命名參數 74
4.2.5  輸出不同的進制數 74
4.2.6  指定寬度 76
4.2.7  填充與對齊 77
4.2.8  指定小數的精確值 78
4.2.9  輸出{和} 79
4.2.10  格式化宏format! 80

第 5 章  選擇結構 81
5.1  if選擇語句 81
5.1.1  單分支if語句 82
5.1.2  雙分支if…else語句 83
5.1.3  多分支if語句 83
5.1.4  在let語句中使用if 86
5.2  匹配控制語句match 86
5.2.1  匹配整數 87
5.2.2  匹配枚舉類型 87
5.2.3  匹配元組 88
5.2.4  匹配範圍 88
5.2.5  匹配守衛 89
5.2.6  一些經驗 89

第 6 章  控制結構 91
6.1  生活及數學中的循環控制 91
6.2  for循環 91
6.3  while循環 92
6.4  loop循環 93
6.5  break語句 93
6.5.1  break單獨使用 94
6.5.2  break帶出返回值 94
6.5.3  跳轉到指定標簽的循環 95
6.6  continue語句 96
6.6.1  continue單獨使用 96
6.6.2  跳轉到指定標簽的循環 97

第 7 章  函數 99
7.1  函數定義 99
7.2  函數參數 100
7.3  函數返回值 100
7.4  函數重載 101
7.5  函數作為參數和返回值 102
7.6  Rust泛型 102
7.6.1  什麼是泛型編程 102
7.6.2  在函數中使用泛型 103
7.6.3  在結構體中使用泛型 106

第 8 章  複合數據類型 108
8.1  數組 108
8.1.1  什麼是數組 108
8.1.2  數組的定義和初始化 109
8.1.3  輸出數組元素 110
8.1.4  得到數組長度 110
8.1.5  默認值初始化 110
8.1.6  訪問數組元素 111
8.1.7  數組切片 111
8.1.8  多維數組 113
8.2  元組 113
8.2.1  元組的定義 113
8.2.2  元組的輸出 114
8.2.3  訪問元組中的單個元素 114
8.3  結構體類型 115
8.3.1  結構體的定義 116
8.3.2  結構體實例化 116
8.3.3  結構體的方法 117
8.3.4  結構體的關聯函數 118
8.3.5  結構體的特性 119
8.3.6  結構體的注意事項 119
8.4  枚舉類型 120
8.4.1  定義枚舉類型 120
8.4.2  枚舉類型的使用 122
8.4.3  包含數據的枚舉 123
8.4.4  some類型 124
8.5  trait 125
8.5.1  成員方法 125
8.5.2  靜態方法 128
8.5.3  擴展方法 129
8.5.4  完整函數調用方法 130
8.5.5  trait約束和繼承 131
8.5.6  derive屬性 132
8.5.7  trait別名 133
8.5.8  Sized trait 133
8.5.9  默認trait 134

第 9 章  指針 135
9.1  指針的概念 135
9.1.1  地址和指針 135
9.1.2  指針變量的定義 136
9.2  指針變量的基本使用方法 137
9.2.1  指針變量的賦值 137
9.2.2  得到指針變量的大小 138
9.2.3  得到指針變量所指變量的值 139
9.2.4  指針變量做函數參數 140
9.2.5  指針變量做函數返回值 141
9.2.6  數組通過指針來引用 142
9.3  函數指針 143
9.3.1  什麼是函數指針 143
9.3.2  用函數指針變量調用函數 143
9.3.3  函數指針做函數參數 146
9.4  指針數組 148

第 10 章  模塊化編程和標準庫 150
10.1  箱 151
10.1.1  創建crate庫 151
10.1.2  創建可執行的crate 152
10.1.3  可執行crate調用crate庫 152
10.2  包 153
10.2.1  創建可執行類型的包 154
10.2.2  僅編譯包 155
10.2.3  創建庫類型的包 155
10.2.4  包管理工具Cargo 157
10.2.5  典型的包結構 158
10.2.6  引用外部庫 160
10.3  模塊 164
10.3.1  模塊的定義 164
10.3.2  模塊的結構 165
10.3.3  模塊的訪問控制 166
10.3.4  模塊的基本使用 169
10.3.5  創建嵌套模塊 169
10.3.6  多模塊多文件 174
10.4  工作區的概念 177
10.5  標準庫概述 177

第 11 章  標準庫中的字符串對象 180
11.1  概述 180
11.2  創建字符串對象 180
11.3  字符串對象常用的方法 182
11.3.1  as_bytes得到字符串內容的字節切片 182
11.3.2  as_mut_str轉換字符串的可變性 182
11.3.3  as_str提取整個字符串切片 182
11.3.4  capacity獲得此字符串的緩衝區容量 183
11.3.5  clear刪除字符串內容 183
11.3.6  drain刪除部分字符串 183
11.3.7  from_raw_parts創建新的字符串 184
11.3.8  from_utf16將UTF-16編碼的矢量解碼為字符串 184
11.3.9  from_utf8將字節向量轉換為字符串 185
11.3.10  insert插入一個字符 185
11.3.11  insert_str插入一個字符串切片 186
11.3.12  into_bytes將字符串轉換為字節向量 186
11.3.13  is_empty判斷字符串長度是否為零 186
11.3.14  len得到字符串長度 186
11.3.15  new創建一個新的空字符串 187
11.3.16  with_capacity創建指定容量的新空字符串 187
11.3.17  push追加字符 187
11.3.18  push_str追加字符串 188
11.3.19  truncate縮短字符串 188
11.3.20  pop刪除最後一個字符 188
11.3.21  remove刪除指定字符 190
11.3.22  reserve保留容量 191
11.3.23  shrink_to使用下限縮小此字符串的容量 191
11.3.24  shrink_to_fit縮小此字符串的容量 192
11.3.25  split_off分割字符串 192
11.3.26  truncate縮短字符串 192

第 12 章  多線程編程 193
12.1  閉包 193
12.1.1  閉包的定義和語法 193
12.1.2  捕獲變量 194
12.1.3  閉包作為參數和返回值 195
12.1.4  閉包的使用場景 195
12.2  多線程編程概述 196
12.2.1  線程的基本概念 196
12.2.2  併發 196
12.2.3  Rust線程模型 197
12.3  模塊std::thread 197
12.3.1  spawn創建線程 197
12.3.2  等待所有線程完成 199
12.3.3  在線程中使用其他線程數據 202
12.3.4  線程函數 204
12.3.5  available_parallelism返回默認並行度 205
12.3.6  獲得當前線程的名稱和id 206
12.4  線程間通信 208

第 13 章  標準輸入輸出和命令行參數 209
13.1  概述 209
13.2  從標準輸入流中讀取數據 210
13.2.1  trait Read 210
13.2.2  trait BufRead 212
13.2.3  標準輸入函數stdin 213
13.3  標準輸出流 215
13.4  命令行參數 217

第 14 章  文件讀寫 219
14.1  打開文件 219
14.2  創建文件 220
14.3  寫文件 221
14.4  讀文件 221
14.5  追加內容到文件末尾 222
14.6  刪除文件 223
14.7  複製文件 224

第 15 章  網絡編程實戰 225
15.1  套接字的基本概念 225
15.1.1  網絡程序的架構 226
15.1.2  套接字的類型 227
15.2  IP地址枚舉IpAddr 228
15.2.1  is_unspecified函數 229
15.2.2  is_loopback函數 229
15.2.3  is_multicast函數 230
15.2.4  is_ipv4函數 230
15.2.5  is_ipv6函數 230
15.3  IPv4結構Ipv4Addr 231
15.3.1  new函數 231
15.3.2  常量LOCALHOST 232
15.3.3  常量UNSPECIFIED 232
15.3.4  常量BROADCAST 232
15.3.5  octets函數 232
15.3.6  is_unspecified函數 233
15.3.7  is_loopback函數 233
15.3.8  is_link_local函數 233
15.3.9  is_multicast函數 234
15.3.10  is_broadcast函數 234
15.3.11  to_ipv6_compatible函數 235
15.3.12  to_ipv6_mapped函數 235
15.4  IPv4套接字地址SocketAddrV4 235
15.4.1  new函數 236
15.4.2  ip函數 236
15.4.3  set_ip函數 236
15.4.4  port函數 237
15.4.5  set_port函數 237
15.5  TCP套接字編程的基本步驟 237
15.6  TCP偵聽器TcpListener 238
15.6.1  bind函數 239
15.6.2  local_addr函數 239
15.6.3  try_clone函數 240
15.6.4  accept函數 240
15.6.5  incoming函數 241
15.6.6  set_ttl函數 241
15.6.7  ttl函數 242
15.6.8  take_error函數 242
15.6.9  set_nonblocking函數 242
15.7  TCP流結構TcpStream 243
15.7.1  connect函數 243
15.7.2  connect_timeout函數 244
15.7.3  peer_addr函數 244
15.7.4  local_addr函數 245
15.7.5  shutdown函數 245
15.7.6  try_clone函數 245
15.7.7  set_read_timeout函數 246
15.7.8  set_write_timeout函數 246
15.7.9  read_timeout函數 247
15.7.10  write_timeout函數 247
15.7.11  peek函數 247
15.7.12  set_nodelay函數 248
15.7.13  nodelay函數 248
15.7.14  set_ttl函數 248
15.7.15  ttl函數 249
15.7.16  take_error函數 249
15.7.17  set_nonblocking函數 249
15.8  實戰TCP服務器客戶端編程 250
15.9  UDP套接字結構UdpSocket 251
15.9.1  bing函數 252
15.9.2  recv_from函數 253
15.9.3  peek_from函數 253
15.9.4  send_to函數 253
15.9.5  peer_addr函數 254
15.9.6  local_addr函數 254
15.9.7  local_addr函數 254
15.9.8  set_read_timeout函數 255
15.9.9  set_write_timeout函數 255
15.9.10  read_timeout函數 256
15.9.11  write_timeout函數 256
15.9.12  set_broadcast函數 256
15.9.13  broadcast函數 257
15.9.14  set_multicast_loop_v4函數 257
15.9.15  multicast_loop_v4函數 257
15.9.16  set_multicast_ttl_v4函數 257
15.9.17  multicast_ttl_v4函數 258
15.9.18  set_multicast_loop_v6函數 258
15.9.19  multicast_loop_v6函數 258
15.9.20  set_ttl函數 259
15.9.21  ttl函數 259
15.9.22  take_error函數 259
15.9.23  connect函數 260
15.9.24  send函數 260
15.9.25  recv函數 260
15.9.26  peek函數 261
15.9.27  set_nonblocking函數 261
15.9.28  實戰UDP編程 262
15.10  網絡實戰案例 263
15.10.1  HTTP的工作原理 263
15.10.2  HTTP的特點 264
15.10.3  HTTP消息結構 264
15.10.4  客戶端請求消息 265
15.10.5  服務器響應消息 266
15.10.6  HTTP狀態碼 267
15.10.7  HTTP狀態碼分類 267
15.10.8  實現HTTP服務器 268

第 16 章  圖像和遊戲開發實戰 271
16.1  圖像編程基礎 271
16.2  Piston概述 273
16.3  WindowSettings結構體 274
16.3.1  new函數 274
16.3.2  build函數 274
16.3.3  get_title函數 274
16.3.4  set_title函數 274
16.3.5  title函數 275
16.3.6  get_size函數 275
16.3.7  set_size函數 275
16.3.8  size函數 275
16.3.9  get_fullscreen函數 275
16.3.10  set_fullscreen函數 275
16.3.11  fullscreen函數 275
16.3.12  get_exit_on_esc函數 276
16.3.13  set_exit_on_esc函數 276
16.3.14  exit_on_esc函數 276
16.3.15  get_automatic_close函數 276
16.3.16  set_automatic_close函數 276
16.3.17  automatic_close函數 276
16.4  piston_window庫 280
16.5  遊戲實戰案例 286

第 17 章  數據分析實戰 295
17.1  Polars概述 295
17.1.1  什麼是Polars 295
17.1.2  Polars和Pandas對比 296
17.1.3  為什麼需要Polars 296
17.1.4  安裝Polars 297
17.1.5  創建DataFrame 297
17.1.6  加載外部數據 301
17.2  瀏覽數據 303
17.3  數據描述 304
17.4  聚合統計 305
17.5  數據清洗 306
17.5.1  處理缺失值 306
17.5.2  剔除重複值 307
17.6  數據操作 308
17.6.1  選擇列 308
17.6.2  數據篩選(過濾) 308
17.6.3  排序 309
17.6.4  合併 310
17.6.5  分組 311
 

詳細資料

  • ISBN:9787302660248
  • 規格:平裝 / 311頁 / 19 x 26 x 1.55 cm / 普通級 / 1-1
  • 出版地:中國

最近瀏覽商品

 

相關活動

  • 2024曬書市集69元起,滿萬再回饋1000元E-Coupon!
 

購物說明

溫馨提醒您:若您訂單中有購買簡體館無庫存/預售書或庫存於海外廠商的書籍,建議與其他商品分開下單,以避免等待時間過長,謝謝。

大陸出版品書況:因裝幀品質及貨運條件未臻完善,書況與台灣出版品落差甚大,封面老舊、出現磨痕、凹痕等均屬常態,故簡體字館除封面破損、內頁脫落...等較嚴重的狀態外,其餘所有商品將正常出貨。 

 

請注意,部分書籍附贈之內容(如音頻mp3或影片dvd等)已無實體光碟提供,需以QR CODE 連結至當地網站註冊“並通過驗證程序”,方可下載使用。

調貨時間:若您購買海外庫存之商品,於您完成訂購後,商品原則上約45個工作天內抵台(若有將延遲另行告知)。為了縮短等待的時間,建議您將簡體書與其它商品分開訂購,以利一般商品快速出貨。 

若您具有法人身份為常態性且大量購書者,或有特殊作業需求,建議您可洽詢「企業採購」。 

退換貨說明 

會員所購買的商品均享有到貨十天的猶豫期(含例假日)。退回之商品必須於猶豫期內寄回。 

辦理退換貨時,商品必須是全新狀態與完整包裝(請注意保持商品本體、配件、贈品、保證書、原廠包裝及所有附隨文件或資料的完整性,切勿缺漏任何配件或損毀原廠外盒)。退回商品無法回復原狀者,恐將影響退貨權益或需負擔部分費用。 

訂購本商品前請務必詳閱商品退換貨原則

  • 簡體週年慶
  • 商業新品
  • 福寶