注冊 | 登錄讀書好,好讀書,讀好書!
讀書網(wǎng)-DuShu.com
當(dāng)前位置: 首頁出版圖書科學(xué)技術(shù)計(jì)算機(jī)/網(wǎng)絡(luò)軟件與程序設(shè)計(jì)Rust編程與項(xiàng)目實(shí)戰(zhàn)

Rust編程與項(xiàng)目實(shí)戰(zhàn)

Rust編程與項(xiàng)目實(shí)戰(zhàn)

定 價(jià):¥99.00

作 者: 朱文偉 李建英
出版社: 清華大學(xué)出版社
叢編項(xiàng):
標(biāo) 簽: 暫缺

ISBN: 9787302660248 出版時(shí)間: 2024-05-01 包裝: 平裝-膠訂
開本: 16開 頁數(shù): 字?jǐn)?shù):  

內(nèi)容簡介

  Rust是一門系統(tǒng)編程語言,專注于安全,尤其是并發(fā)安全,它也是支持函數(shù)式、命令式以及泛型等編程范式的多范式語言。標(biāo)準(zhǔn)Rust在語法和性能上和標(biāo)準(zhǔn)C 類似,設(shè)計(jì)者可以在保證性能的同時(shí)提供更好的內(nèi)存安全?!禦ust編程與項(xiàng)目實(shí)戰(zhàn)》詳解Rust編程技巧,配套示例源碼、PPT課件、作者QQ答疑服務(wù)?!禦ust編程與項(xiàng)目實(shí)戰(zhàn)》共分17章,內(nèi)容包括Rust基礎(chǔ),搭建Rust開發(fā)環(huán)境,常量、變量和標(biāo)量數(shù)據(jù)類型,運(yùn)算符和格式化輸出,選擇結(jié)構(gòu),控制結(jié)構(gòu),函數(shù),復(fù)合數(shù)據(jù)類型,指針,模塊化編程和標(biāo)準(zhǔn)庫,標(biāo)準(zhǔn)庫中的字符串對象,多線程編程,標(biāo)準(zhǔn)輸入輸出和命令行參數(shù),文件讀寫,網(wǎng)絡(luò)編程實(shí)戰(zhàn),圖像和游戲開發(fā)實(shí)戰(zhàn),數(shù)據(jù)分析實(shí)戰(zhàn)?!禦ust編程與項(xiàng)目實(shí)戰(zhàn)》適用于Rust編程初學(xué)者、Rust應(yīng)用開發(fā)人員、高并發(fā)和分布式開發(fā)人員、Web Assembly開發(fā)人員、游戲開發(fā)人員以及嵌入式應(yīng)用開發(fā)人員。本書也適合作為高等院?;蚋呗毟邔ust編程課程的教材。

作者簡介

  朱文偉,名校計(jì)算機(jī)專業(yè)統(tǒng)招碩士,20多年CC 、Java開發(fā)經(jīng)驗(yàn)。主導(dǎo)開發(fā)過密碼、圖形、人工智能等產(chǎn)品。精通Linux、Windows系統(tǒng)開發(fā)及數(shù)據(jù)庫開發(fā)技術(shù)。著有圖書:《嵌入式Linux驅(qū)動開發(fā)實(shí)踐》《高性能Linux網(wǎng)絡(luò)編程核心技術(shù)揭秘》《Linux C/C 服務(wù)器開發(fā)實(shí)踐》《Qt 6.x從入門到精通》《PyQt 5從入門到精通》《Linux C與C 一線開發(fā)實(shí)踐》《Visual C 2017從入門到精通》《Windows C/C 加密解密實(shí)戰(zhàn)》《密碼學(xué)原理與Java實(shí)現(xiàn)》《OpenCV 4.5計(jì)算機(jī)視覺開發(fā)實(shí)戰(zhàn)(基于VC )》《OpenCV 4.5計(jì)算機(jī)視覺開發(fā)實(shí)戰(zhàn):基于Python》。

圖書目錄

第 1 章  Rust基礎(chǔ) 1
1.1  Rust概述 1
1.1.1  Rust的來源與定義 1
1.1.2  Rust適合做什么 2
1.1.3  Rust的特點(diǎn) 3
1.1.4  Rust和其他語言的總體比較 4
1.2  Rust到底值不值得學(xué) 5
1.2.1  Rust是一種全面創(chuàng)新的語言 6
1.2.2  引用和借用 8
1.2.3  生命期 9
1.2.4  編譯時(shí)檢查和運(yùn)行時(shí)開銷 10
1.2.5  有限的面向?qū)ο筇卣?11
1.2.6  擴(kuò)展庫支持 13
1.2.7  Rust是一種可以進(jìn)行底層開發(fā)的高級語言 14
第 2 章  搭建Rust開發(fā)環(huán)境 15
2.1  搭建Windows下的Rust開發(fā)環(huán)境 15
2.1.1  安裝vs_buildtools 15
2.1.2  安裝Rust相關(guān)工具 16
2.1.3  第一個(gè)Rust項(xiàng)目 17
2.1.4  VS Code搭建Rust開發(fā)環(huán)境 18
2.1.5  VS Code單步調(diào)試Rust程序 20
2.1.6  VS Code自動清除輸出窗口 22
2.1.7  VS Code修改程序自動保存 23
2.1.8  關(guān)閉rust-analyzer插件的自動類型提示 23
2.2  在Linux下搭建Rust開發(fā)環(huán)境 24
2.2.1  安裝基本開發(fā)工具 24
2.2.2  啟用SSH 24
2.2.3  安裝C編譯工具 26
2.2.4  安裝和配置Rust編譯環(huán)境 27
2.2.5  命令行開發(fā)Rust程序 28
2.2.6  在VS Code中開發(fā)遠(yuǎn)程Rust程序 30
第 3 章  常量、變量和標(biāo)量數(shù)據(jù)類型 39
3.1  Rust程序結(jié)構(gòu) 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中的關(guān)鍵字 45
3.4.2  變量的命名規(guī)則 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  數(shù)據(jù)類型的定義和分類 52
3.6  標(biāo)量數(shù)據(jù)類型 53
3.6.1  整型 53
3.6.2  布爾型 57
3.6.3  字符類型 57
3.6.4  浮點(diǎn)型 58
3.6.5  得到變量的字節(jié)數(shù) 59
3.7  常數(shù)的數(shù)據(jù)類型 60
3.8  作用域 61
3.9  所有權(quán) 63
3.9.1  讓我們回憶棧和堆 63
3.9.2  什么是所有權(quán) 63
第 4 章  運(yùn)算符和格式化輸出 65
4.1  運(yùn)算符 65
4.1.1  賦值運(yùn)算符 65
4.1.2  數(shù)學(xué)運(yùn)算符 66
4.1.3  組合運(yùn)算符 66
4.1.4  關(guān)系運(yùn)算符 67
4.1.5  邏輯運(yùn)算符 68
4.1.6  位運(yùn)算符 69
4.1.7  變量類型轉(zhuǎn)換運(yùn)算符 70
4.1.8  運(yùn)算符的優(yōu)先級 71
4.2  格式化輸出宏 72
4.2.1  默認(rèn)輸出 73
4.2.2  通配符{} 73
4.2.3  通配符和位置 73
4.2.4  通配符和命名參數(shù) 74
4.2.5  輸出不同的進(jìn)制數(shù) 74
4.2.6  指定寬度 76
4.2.7  填充與對齊 77
4.2.8  指定小數(shù)的精確值 78
4.2.9  輸出{和} 79
4.2.10  格式化宏format! 80
第 5 章  選擇結(jié)構(gòu) 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  匹配整數(shù) 87
5.2.2  匹配枚舉類型 87
5.2.3  匹配元組 88
5.2.4  匹配范圍 88
5.2.5  匹配守衛(wèi) 89
5.2.6  一些經(jīng)驗(yàn) 89
第 6 章  控制結(jié)構(gòu) 91
6.1  生活及數(shù)學(xué)中的循環(huán)控制 91
6.2  for循環(huán) 91
6.3  while循環(huán) 92
6.4  loop循環(huán) 93
6.5  break語句 93
6.5.1  break單獨(dú)使用 94
6.5.2  break帶出返回值 94
6.5.3  跳轉(zhuǎn)到指定標(biāo)簽的循環(huán) 95
6.6  continue語句 96
6.6.1  continue單獨(dú)使用 96
6.6.2  跳轉(zhuǎn)到指定標(biāo)簽的循環(huán) 97
第 7 章  函數(shù) 99
7.1  函數(shù)定義 99
7.2  函數(shù)參數(shù) 100
7.3  函數(shù)返回值 100
7.4  函數(shù)重載 101
7.5  函數(shù)作為參數(shù)和返回值 102
7.6  Rust泛型 102
7.6.1  什么是泛型編程 102
7.6.2  在函數(shù)中使用泛型 103
7.6.3  在結(jié)構(gòu)體中使用泛型 106
第 8 章  復(fù)合數(shù)據(jù)類型 108
8.1  數(shù)組 108
8.1.1  什么是數(shù)組 108
8.1.2  數(shù)組的定義和初始化 109
8.1.3  輸出數(shù)組元素 110
8.1.4  得到數(shù)組長度 110
8.1.5  默認(rèn)值初始化 110
8.1.6  訪問數(shù)組元素 111
8.1.7  數(shù)組切片 111
8.1.8  多維數(shù)組 113
8.2  元組 113
8.2.1  元組的定義 113
8.2.2  元組的輸出 114
8.2.3  訪問元組中的單個(gè)元素 114
8.3  結(jié)構(gòu)體類型 115
8.3.1  結(jié)構(gòu)體的定義 116
8.3.2  結(jié)構(gòu)體實(shí)例化 116
8.3.3  結(jié)構(gòu)體的方法 117
8.3.4  結(jié)構(gòu)體的關(guān)聯(lián)函數(shù) 118
8.3.5  結(jié)構(gòu)體的特性 119
8.3.6  結(jié)構(gòu)體的注意事項(xiàng) 119
8.4  枚舉類型 120
8.4.1  定義枚舉類型 120
8.4.2  枚舉類型的使用 122
8.4.3  包含數(shù)據(jù)的枚舉 123
8.4.4  some類型 124
8.5  trait 125
8.5.1  成員方法 125
8.5.2  靜態(tài)方法 128
8.5.3  擴(kuò)展方法 129
8.5.4  完整函數(shù)調(diào)用方法 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  默認(rèn)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  指針變量做函數(shù)參數(shù) 140
9.2.5  指針變量做函數(shù)返回值 141
9.2.6  數(shù)組通過指針來引用 142
9.3  函數(shù)指針 143
9.3.1  什么是函數(shù)指針 143
9.3.2  用函數(shù)指針變量調(diào)用函數(shù) 143
9.3.3  函數(shù)指針做函數(shù)參數(shù) 146
9.4  指針數(shù)組 148
第 10 章  模塊化編程和標(biāo)準(zhǔn)庫 150
10.1  箱 151
10.1.1  創(chuàng)建crate庫 151
10.1.2  創(chuàng)建可執(zhí)行的crate 152
10.1.3  可執(zhí)行crate調(diào)用crate庫 152
10.2  包 153
10.2.1  創(chuàng)建可執(zhí)行類型的包 154
10.2.2  僅編譯包 155
10.2.3  創(chuàng)建庫類型的包 155
10.2.4  包管理工具Cargo 157
10.2.5  典型的包結(jié)構(gòu) 158
10.2.6  引用外部庫 160
10.3  模塊 164
10.3.1  模塊的定義 164
10.3.2  模塊的結(jié)構(gòu) 165
10.3.3  模塊的訪問控制 166
10.3.4  模塊的基本使用 169
10.3.5  創(chuàng)建嵌套模塊 169
10.3.6  多模塊多文件 174
10.4  工作區(qū)的概念 177
10.5  標(biāo)準(zhǔn)庫概述 177
第 11 章  標(biāo)準(zhǔn)庫中的字符串對象 180
11.1  概述 180
11.2  創(chuàng)建字符串對象 180
11.3  字符串對象常用的方法 182
11.3.1  as_bytes得到字符串內(nèi)容的字節(jié)切片 182
11.3.2  as_mut_str轉(zhuǎn)換字符串的可變性 182
11.3.3  as_str提取整個(gè)字符串切片 182
11.3.4  capacity獲得此字符串的緩沖區(qū)容量 183
11.3.5  clear刪除字符串內(nèi)容 183
11.3.6  drain刪除部分字符串 183
11.3.7  from_raw_parts創(chuàng)建新的字符串 184
11.3.8  from_utf16將UTF-16編碼的矢量解碼為字符串 184
11.3.9  from_utf8將字節(jié)向量轉(zhuǎn)換為字符串 185
11.3.10  insert插入一個(gè)字符 185
11.3.11  insert_str插入一個(gè)字符串切片 186
11.3.12  into_bytes將字符串轉(zhuǎn)換為字節(jié)向量 186
11.3.13  is_empty判斷字符串長度是否為零 186
11.3.14  len得到字符串長度 186
11.3.15  new創(chuàng)建一個(gè)新的空字符串 187
11.3.16  with_capacity創(chuàng)建指定容量的新空字符串 187
11.3.17  push追加字符 187
11.3.18  push_str追加字符串 188
11.3.19  truncate縮短字符串 188
11.3.20  pop刪除最后一個(gè)字符 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  閉包作為參數(shù)和返回值 195
12.1.4  閉包的使用場景 195
12.2  多線程編程概述 196
12.2.1  線程的基本概念 196
12.2.2  并發(fā) 196
12.2.3  Rust線程模型 197
12.3  模塊std::thread 197
12.3.1  spawn創(chuàng)建線程 197
12.3.2  等待所有線程完成 199
12.3.3  在線程中使用其他線程數(shù)據(jù) 202
12.3.4  線程函數(shù) 204
12.3.5  available_parallelism返回默認(rèn)并行度 205
12.3.6  獲得當(dāng)前線程的名稱和id 206
12.4  線程間通信 208
第 13 章  標(biāo)準(zhǔn)輸入輸出和命令行參數(shù) 209
13.1  概述 209
13.2  從標(biāo)準(zhǔn)輸入流中讀取數(shù)據(jù) 210
13.2.1  trait Read 210
13.2.2  trait BufRead 212
13.2.3  標(biāo)準(zhǔn)輸入函數(shù)stdin 213
13.3  標(biāo)準(zhǔn)輸出流 215
13.4  命令行參數(shù) 217
第 14 章  文件讀寫 219
14.1  打開文件 219
14.2  創(chuàng)建文件 220
14.3  寫文件 221
14.4  讀文件 221
14.5  追加內(nèi)容到文件末尾 222
14.6  刪除文件 223
14.7  復(fù)制文件 224
第 15 章  網(wǎng)絡(luò)編程實(shí)戰(zhàn) 225
15.1  套接字的基本概念 225
15.1.1  網(wǎng)絡(luò)程序的架構(gòu) 226
15.1.2  套接字的類型 227
15.2  IP地址枚舉IpAddr 228
15.2.1  is_unspecified函數(shù) 229
15.2.2  is_loopback函數(shù) 229
15.2.3  is_multicast函數(shù) 230
15.2.4  is_ipv4函數(shù) 230
15.2.5  is_ipv6函數(shù) 230
15.3  IPv4結(jié)構(gòu)Ipv4Addr 231
15.3.1  new函數(shù) 231
15.3.2  常量LOCALHOST 232
15.3.3  常量UNSPECIFIED 232
15.3.4  常量BROADCAST 232
15.3.5  octets函數(shù) 232
15.3.6  is_unspecified函數(shù) 233
15.3.7  is_loopback函數(shù) 233
15.3.8  is_link_local函數(shù) 233
15.3.9  is_multicast函數(shù) 234
15.3.10  is_broadcast函數(shù) 234
15.3.11  to_ipv6_compatible函數(shù) 235
15.3.12  to_ipv6_mapped函數(shù) 235
15.4  IPv4套接字地址SocketAddrV4 235
15.4.1  new函數(shù) 236
15.4.2  ip函數(shù) 236
15.4.3  set_ip函數(shù) 236
15.4.4  port函數(shù) 237
15.4.5  set_port函數(shù) 237
15.5  TCP套接字編程的基本步驟 237
15.6  TCP偵聽器TcpListener 238
15.6.1  bind函數(shù) 239
15.6.2  local_addr函數(shù) 239
15.6.3  try_clone函數(shù) 240
15.6.4  accept函數(shù) 240
15.6.5  incoming函數(shù) 241
15.6.6  set_ttl函數(shù) 241
15.6.7  ttl函數(shù) 242
15.6.8  take_error函數(shù) 242
15.6.9  set_nonblocking函數(shù) 242
15.7  TCP流結(jié)構(gòu)TcpStream 243
15.7.1  connect函數(shù) 243
15.7.2  connect_timeout函數(shù) 244
15.7.3  peer_addr函數(shù) 244
15.7.4  local_addr函數(shù) 245
15.7.5  shutdown函數(shù) 245
15.7.6  try_clone函數(shù) 245
15.7.7  set_read_timeout函數(shù) 246
15.7.8  set_write_timeout函數(shù) 246
15.7.9  read_timeout函數(shù) 247
15.7.10  write_timeout函數(shù) 247
15.7.11  peek函數(shù) 247
15.7.12  set_nodelay函數(shù) 248
15.7.13  nodelay函數(shù) 248
15.7.14  set_ttl函數(shù) 248
15.7.15  ttl函數(shù) 249
15.7.16  take_error函數(shù) 249
15.7.17  set_nonblocking函數(shù) 249
15.8  實(shí)戰(zhàn)TCP服務(wù)器客戶端編程 250
15.9  UDP套接字結(jié)構(gòu)UdpSocket 251
15.9.1  bing函數(shù) 252
15.9.2  recv_from函數(shù) 253
15.9.3  peek_from函數(shù) 253
15.9.4  send_to函數(shù) 253
15.9.5  peer_addr函數(shù) 254
15.9.6  local_addr函數(shù) 254
15.9.7  local_addr函數(shù) 254
15.9.8  set_read_timeout函數(shù) 255
15.9.9  set_write_timeout函數(shù) 255
15.9.10  read_timeout函數(shù) 256
15.9.11  write_timeout函數(shù) 256
15.9.12  set_broadcast函數(shù) 256
15.9.13  broadcast函數(shù) 257
15.9.14  set_multicast_loop_v4函數(shù) 257
15.9.15  multicast_loop_v4函數(shù) 257
15.9.16  set_multicast_ttl_v4函數(shù) 257
15.9.17  multicast_ttl_v4函數(shù) 258
15.9.18  set_multicast_loop_v6函數(shù) 258
15.9.19  multicast_loop_v6函數(shù) 258
15.9.20  set_ttl函數(shù) 259
15.9.21  ttl函數(shù) 259
15.9.22  take_error函數(shù) 259
15.9.23  connect函數(shù) 260
15.9.24  send函數(shù) 260
15.9.25  recv函數(shù) 260
15.9.26  peek函數(shù) 261
15.9.27  set_nonblocking函數(shù) 261
15.9.28  實(shí)戰(zhàn)UDP編程 262
15.10  網(wǎng)絡(luò)實(shí)戰(zhàn)案例 263
15.10.1  HTTP的工作原理 263
15.10.2  HTTP的特點(diǎn) 264
15.10.3  HTTP消息結(jié)構(gòu) 264
15.10.4  客戶端請求消息 265
15.10.5  服務(wù)器響應(yīng)消息 266
15.10.6  HTTP狀態(tài)碼 267
15.10.7  HTTP狀態(tài)碼分類 267
15.10.8  實(shí)現(xiàn)HTTP服務(wù)器 268
第 16 章  圖像和游戲開發(fā)實(shí)戰(zhàn) 271
16.1  圖像編程基礎(chǔ) 271
16.2  Piston概述 273
16.3  WindowSettings結(jié)構(gòu)體 274
16.3.1  new函數(shù) 274
16.3.2  build函數(shù) 274
16.3.3  get_title函數(shù) 274
16.3.4  set_title函數(shù) 274
16.3.5  title函數(shù) 275
16.3.6  get_size函數(shù) 275
16.3.7  set_size函數(shù) 275
16.3.8  size函數(shù) 275
16.3.9  get_fullscreen函數(shù) 275
16.3.10  set_fullscreen函數(shù) 275
16.3.11  fullscreen函數(shù) 275
16.3.12  get_exit_on_esc函數(shù) 276
16.3.13  set_exit_on_esc函數(shù) 276
16.3.14  exit_on_esc函數(shù) 276
16.3.15  get_automatic_close函數(shù) 276
16.3.16  set_automatic_close函數(shù) 276
16.3.17  automatic_close函數(shù) 276
16.4  piston_window庫 280
16.5  游戲?qū)崙?zhàn)案例 286
第 17 章  數(shù)據(jù)分析實(shí)戰(zhàn) 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  創(chuàng)建DataFrame 297
17.1.6  加載外部數(shù)據(jù) 301
17.2  瀏覽數(shù)據(jù) 303
17.3  數(shù)據(jù)描述 304
17.4  聚合統(tǒng)計(jì) 305
17.5  數(shù)據(jù)清洗 306
17.5.1  處理缺失值 306
17.5.2  剔除重復(fù)值 307
17.6  數(shù)據(jù)操作 308
17.6.1  選擇列 308
17.6.2  數(shù)據(jù)篩選(過濾) 308
17.6.3  排序 309
17.6.4  合并 310
17.6.5  分組 311
 

本目錄推薦

掃描二維碼
Copyright ? 讀書網(wǎng) m.ranfinancial.com 2005-2020, All Rights Reserved.
鄂ICP備15019699號 鄂公網(wǎng)安備 42010302001612號