中图网(原中国图书网):网上书店,尾货特色书店,30万种特价书低至2折!

歡迎光臨中圖網 請 | 注冊

包郵 Rust實戰

出版社:人民郵電出版社出版時間:2022-09-01
開本: 24cm 頁數: 406頁
中 圖 價:¥77.9(6.0折) 定價  ¥129.8 登錄后可看到會員價
加入購物車 收藏
開年大促, 全場包郵
?新疆、西藏除外
本類五星書更多>

Rust實戰 版權信息

Rust實戰 本書特色

*贈送源代碼示例文件*涵蓋數十個有趣的示例,簡潔易懂,幫你了解Rust語法和Rust的實際運用*內容由淺入深,通過探索多種系統編程概念和技術引入Rust編程語言,推薦給對rust編程感興趣的你!

Rust實戰 內容簡介

本書通過探索多種系統編程概念和技術引入Rust編程語言,在深入探索計算機的工作原理的同時,幫助讀者了解Rust的所有權系統、Trait、包管理、錯誤處理、條件編譯等概念,并通過源自現實的示例來幫助讀者了解Rust中的內存模型、文件操作、多線程、網絡編程等內容。本書旨在幫助讀者用Rust擴展其他應用程序,并會提供一些有助于用Rust快速編寫代碼的技巧。本書還會介紹如何使用Rust實現并行和并發編程,并給出10余個源自現實的示例和場景,讓讀者不僅能了解Rust語法,還能了解Rust的實際運用。

Rust實戰 目錄

第 一部分 Rust語言的特色

第 1章 Rust語言介紹 3
1.1 哪些地方使用了Rust? 4
1.2 在工作中提倡使用Rust 5
1.3 Rust初體驗 6
1.3.1 直通“Hello, world!” 6
1.3.2 第 一個Rust程序 8
1.4 下載本書源代碼 10
1.5 使用Rust語言的感受如何 10
1.6 Rust語言是什么? 13
1.6.1 Rust的目標:安全性 14
1.6.2 Rust的目標:生產力 18
1.6.3 Rust的目標:控制 19
1.7 Rust的主要特點 20
1.7.1 性能 20
1.7.2 并發 21
1.7.3 內存使用效率 21
1.8 Rust的缺點 21
1.8.1 循環數據結構 21
1.8.2 編譯速度 22
1.8.3 嚴格 22
1.8.4 語言的大小 22
1.8.5 炒作 22
1.9 TLS安全性問題的研究 22
1.9.1 “心臟出血” 23
1.9.2 跳轉到失敗 23
1.10 Rust*適用于哪些領域? 25
1.10.1 命令行實用程序 25
1.10.2 數據處理 25
1.10.3 擴展應用程序 25
1.10.4 資源受限的環境 26
1.10.5 服務器端應用 26
1.10.6 桌面應用程序 26
1.10.7 桌面 26
1.10.8 移動端 27
1.10.9 Web 27
1.10.10 系統編程 27
1.11 Rust的隱式特性:它的社區 27
1.12 Rust術語表 28
本章小結 28
第 2章 Rust語言基礎 29
2.1 創建一個可運行的程序 30
2.1.1 編譯單文件的Rust程序 30
2.1.2 使用cargo編譯Rust項目 31
2.2 初探Rust語法 32
2.3 數字類型 34
2.3.1 整數和浮點數 34
2.3.2 整數的二進制、八進制及十六進制表示法 35
2.3.3 數字的比較運算 36
2.3.4 有理數、復數和其他數字類型 41
2.4 流程控制 43
2.4.1 for循環:迭代的中心支柱 43
2.4.2 continue:跳過本次迭代余下的部分 45
2.4.3 while:循環,直到循環條件改變了循環的狀態 45
2.4.4 loop:Rust循環結構的基本組件 46
2.4.5 break:立即退出循環 46
2.4.6 if、if else和else:條件測試 47
2.4.7 match:類型感知的模式匹配 48
2.5 定義函數 50
2.6 使用引用 50
2.7 項目:繪制芒德布羅集 51
2.8 高級函數定義 54
2.8.1 顯式生命周期注解 54
2.8.2 泛型函數 55
2.9 創建grep-lite 58
2.10 使用數組、切片和動態數組來創建數據列表 61
2.10.1 數組 61
2.10.2 切片 63
2.10.3 動態數組 63
2.11 包含第三方代碼 65
2.11.1 增加對正則表達式的支持 66
2.11.2 生成包的本地化文檔 67
2.11.3 使用rustup管理Rust工具鏈 68
2.12 命令行參數的支持 68
2.13 從文件中讀取 70
2.14 從標準輸入中讀取 72
本章小結 73
第3章 復合數據類型 75
3.1 使用普通函數對API進行實驗 76
3.2 使用結構體為文件建模 77
3.3 使用impl為結構體添加方法 81
3.4 返回錯誤信息 84
3.4.1 修改一個著名的全局變量 85
3.4.2 使用Result作為返回類型 88
3.5 定義并使用枚舉體 91
3.6 使用trait來定義共有的行為 95
3.6.1 創建名為Read的trait 95
3.6.2 為類型實現std::fmt::Display 96
3.7 將類型暴露給外部使用 99
3.8 創建內聯文檔 100
3.8.1 使用rustdoc給單個源文件生成文檔 101
3.8.2 使用cargo為一個包及其依賴的包生成文檔 101
本章小結 103
第4章 生命周期、所有權和借用 104
4.1 實現一個模擬的立方體衛星地面站 105
4.1.1 遇到第 一個生命周期問題 106
4.1.2 基本類型的特殊行為 109
4.2 本章圖例的說明 110
4.3 所有者是什么?它有什么職責? 111
4.4 所有權是如何移動的? 112
4.5 解決所有權的問題 114
4.5.1 在不需要完整所有權的地方,使用引用 116
4.5.2 使用更少的長存活期的值 119
4.5.3 在需要完整所有權的地方,復制長存活期的值 124
4.5.4 把數據包裝到特殊的類型中 127
本章小結 129

第二部分 揭開系統編程的神秘面紗

第5章 深入理解數據 133
5.1 位模式和類型 133
5.2 整數的生存范圍 135
5.3 小數的表示形式 139
5.4 浮點數 139
5.4.1 觀察f32的內部 140
5.4.2 分離出符號位 141
5.4.3 分離出指數 142
5.4.4 分離出尾數 143
5.4.5 剖析一個浮點數 145
5.5 定點數格式 147
5.6 從隨機字節中生成隨機概率 151
5.7 實現一個CPU模擬器以建立函數也是數據的觀念 153
5.7.1 CPU原型1:加法器 153
5.7.2 CPU原型1完整的清單 157
5.7.3 CPU原型2:累加器 159
5.7.4 CPU原型3:調用函數 162
5.7.5 CPU 4:添加額外功能 168
本章小結 168
第6章 內存 169
6.1 指針 169
6.2 探索Rust的引用和指針類型 171
6.2.1 Rust中的原始指針 176
6.2.2 Rust指針的生態系統 178
6.2.3 智能指針構建塊 180
6.3 為程序提供存儲數據的內存 181
6.3.1 棧 181
6.3.2 堆 183
6.3.3 什么是動態內存分配? 187
6.3.4 分析動態內存分配的影響 192
6.4 虛擬內存 194
6.4.1 背景 195
6.4.2 第 一步:讓一個進程來掃描它自己的內存 196
6.4.3 把虛擬地址翻譯為物理地址 198
6.4.4 第二步:通過操作系統來掃描地址空間 201
6.4.5 第三步:讀取和寫入進程內存中的字節數據 203
本章小結 203
第7章 文件與存儲 204
7.1 文件格式是什么? 204
7.2 創建你自己的用于存儲數據的文件格式 206
7.3 實現一個hexdump的克隆 208
7.4 Rust中的文件操作 211
7.4.1 使用Rust打開一個文件并控制文件的模式 211
7.4.2 使用std::fs::Path以一種類型安全的方式與文件系統進行交互 212
7.5 使用基于日志結構、僅追加的存儲架構,來實現一個鍵值存儲 213
7.5.1 鍵值模型 213
7.5.2 講解actionkv v1:一個帶有命令行接口的內存中的鍵值存儲 214
7.6 Actionkv v1:前端代碼 215
7.7 理解ACTIONKV的核心:LIBACTIONKV包 219
7.7.1 初始化ActionKV結構體 219
7.7.2 處理單條記錄 221
7.7.3 以確定的字節順序將多字節二進制數據寫入磁盤 223
7.7.4 使用校驗和來驗證I/O錯誤 225
7.7.5 向已存在的數據庫中插入一個新的鍵值對 227
7.7.6 actionkv的完整清單 228
7.7.7 使用HashMap和BTreeMap來處理鍵和值 232
7.7.8 創建一個HashMap并用值來填充它 234
7.7.9 從HashMap和BTreeMap中來檢索值 235
7.7.10 在HashMap和BTreeMap之間如何選擇 236
7.7.11 給actionkv v2.0添加數據庫索引 237
本章小結 240
第8章 網絡 242
8.1 全部的網絡體系都在7個分層中 243
8.2 使用reqwest來生成一個HTTP GET請求 245
8.3 trait對象 247
8.3.1 trait對象能做什么? 247
8.3.2 trait對象是什么? 247
8.3.3 創建一個微型的角色扮演游戲:rpg項目 248
8.4 TCP 251
8.4.1 端口號是什么? 252
8.4.2 把主機名轉換為IP地址 252
8.5 以符合工效學的方式處理來自多個包的錯誤 258
8.5.1 問題:無法返回多種錯誤類型 259
8.5.2 通過定義錯誤類型來包裝下游的錯誤 262
8.5.3 使用unwrap()和expect()來“作弊” 267
8.6 MAC地址 268
8.7 使用Rust的枚舉體來實現狀態機 271
8.8 原始TCP 272
8.9 創建一個虛擬網絡設備 272
8.10 原始HTTP 273
本章小結 282
第9章 時間與時間保持 283
9.1 背景 284
9.2 時間源 285
9.3 一些相關的術語定義 286
9.4 時間的編碼 287
9.5 clock v0.1.0:教會一個應用程序如何報時 288
9.6 clock v0.1.1:格式化時間戳以符合ISO 8601和電子郵件的標準 289
9.6.1 重構clock v0.1.0的代碼以支持更廣泛的體系結構 290
9.6.2 時間的格式化 291
9.6.3 提供一個完整的命令行接口 291
9.6.4 clock v0.1.1:完整的項目代碼 293
9.7 clock v0.1.2:設置時間 295
9.7.1 相同的行為模式 295
9.7.2 給使用libc的操作系統來設置時間 296
9.7.3 在Windows上設置時間 298
9.7.4 clock v0.1.2:完整的清單 300
9.8 改善錯誤處理 303
9.9 clock v0.1.3:使用NTP來解決時鐘之間的差異 304
9.9.1 發送NTP請求并解析響應 304
9.9.2 依據服務器的響應來調整本地時間 306
9.9.3 在使用了不同的精度和紀元的時間表示法之間進行轉換 308
9.9.4 clock v0.1.3:完整的清單 309
本章小結 316
第 10章 進程、線程和容器 318
10.1 匿名函數 319
10.2 產生線程 320
10.2.1 引入閉包 320
10.2.2 產生一個新線程 321
10.2.3 產生幾個線程的效果 321
10.2.4 產生很多個線程的效果 322
10.2.5 重新生成這些結果 324
10.2.6 共享的變量 328
10.3 閉包與函數的差異 330
10.4 從多線程解析器和代碼生成器中程序化地生成頭像 331
10.4.1 如何運行render-hex以及預期的輸出 331
10.4.2 單線程版本render-hex的概要介紹 333
10.4.3 為每個邏輯上的任務產生一個線程 341
10.4.4 使用線程池和任務隊列 343
10.5 并發與任務虛擬化 350
10.5.1 線程 352
10.5.2 上下文切換是什么? 352
10.5.3 進程 353
10.5.4 WebAssembly 353
10.5.5 容器 353
10.5.6 為什么要使用操作系統呢? 354
本章小結 354
第 11章 內核 355
11.1 初級操作系統(FledgeOS) 355
11.1.1 搭建開發環境,用于開發操作系統內核 355
11.1.2 驗證開發環境 357
11.2 Fledgeos-0:先讓一些東西能運行起來 358
11.2.1 第 一次引導啟動 358
11.2.2 編譯的步驟 359
11.2.3 源清單 360
11.2.4 處理panic 364
11.2.5 使用VGA兼容的文本模式寫入屏幕 365
11.2.6 _start():FledgeOS的main()函數 366
11.3 fledgeos-1:避免使用忙循環 367
11.3.1 通過直接與CPU交互來降低功耗 367
11.3.2 fledgeos-1的源代碼 368
11.4 fledgeos-2:自定義異常處理 369
11.4.1 幾乎可以正確地處理異!369
11.4.2 fledgeos-2的源代碼 369
11.5 fledgeos-3:文本的輸出 370
11.5.1 把彩色的文本輸出到屏幕 371
11.5.2 控制枚舉體的內存表示形式 371
11.5.3 為何要使用枚舉體? 372
11.5.4 創建出一個類型,能夠用來輸出到VGA的幀緩沖區 372
11.5.5 輸出到屏幕 373
11.5.6 fledgeos-3的源代碼 373
11.6 fledgeos-4:自定義恐慌處理 375
11.6.1 實現一個恐慌處理程序,能夠向用戶報告錯誤 375
11.6.2 使用core::fmt::Write來重新實現panic() 376
11.6.3 實現core::fmt::Write 376
11.6.4 fledgeos-4的源代碼 377
本章小結 379
第 12章 信號、中斷和異!380
12.1 術語表 380
12.2 中斷是如何影響應用程序的? 383
12.3 軟件中斷 384
12.4 硬件中斷 385
12.5 信號處理 386
12.5.1 默認的行為 386
12.5.2 用來暫停和恢復一個程序的操作 386
12.5.3 列出操作系統支持的所有信號 389
12.6 使用自定義的行為來處理信號 389
12.6.1 在Rust中使用全局變量 390
12.6.2 使用全局變量來指示已經啟動了關機 392
12.7 發送由應用程序定義的信號 394
12.8 如何忽略信號? 396
12.9 從深層嵌套的調用棧中關閉程序 397
12.9.1 sjlj項目的介紹 399
12.9.2 在程序中設置固有函數 399
12.9.3 把指針轉換成其他類型 401
12.9.4 編譯sjlj項目 402
12.9.5 sjlj項目的源代碼 403
12.10 將這些技術應用于不支持信號的平臺的說明 406
12.11 修訂異常 406
本章小結 406
展開全部

Rust實戰 作者簡介

蒂姆.麥克納馬拉(Tim McNamara),是文本挖掘、自然語言處理和數據工程等領域的專家。他是Rust Wellington(新西蘭Rust開發者活動)的組織者,并且定期通過社交網站主持Rust編程教學

商品評論(0條)
暫無評論……
書友推薦
本類暢銷
編輯推薦
返回頂部
中圖網
在線客服
主站蜘蛛池模板: 赛尔特智能移动阳光房-阳光房厂家-赛尔特建筑科技(广东)有限公司 | 短信通106短信接口验证码接口群发平台_国际短信接口验证码接口群发平台-速度网络有限公司 | 真丝围巾|真丝丝巾|羊绒围巾|围巾品牌|浙江越缇围巾厂家定制 | 电动葫芦|环链电动葫芦-北京凌鹰名优起重葫芦| 膜结构_ETFE膜结构_膜结构厂家_膜结构设计-深圳市烨兴智能空间技术有限公司 | KBX-220倾斜开关|KBW-220P/L跑偏开关|拉绳开关|DHJY-I隔爆打滑开关|溜槽堵塞开关|欠速开关|声光报警器-山东卓信有限公司 | 钢制拖链生产厂家-全封闭钢制拖链-能源钢铝拖链-工程塑料拖链-河北汉洋机械制造有限公司 | 铝机箱_铝外壳加工_铝外壳厂家_CNC散热器加工-惠州市铂源五金制品有限公司 | 同学聚会纪念册制作_毕业相册制作-成都顺时针宣传画册设计公司 | 磁棒电感生产厂家-电感器厂家-电感定制-贴片功率电感供应商-棒形电感生产厂家-苏州谷景电子有限公司 | 包装设计公司,产品包装设计|包装制作,包装盒定制厂家-汇包装【官方网站】 | 数控车床-立式加工中心-多功能机床-小型车床-山东临沂金星机床有限公司 | 婚博会2024时间表_婚博会门票领取_婚博会地址-婚博会官网 | 洗地机-全自动/手推式洗地机-扫地车厂家_扬子清洁设备 | 临时厕所租赁_玻璃钢厕所租赁_蹲式|坐式厕所出租-北京慧海通 | 佛山市钱丰金属不锈钢蜂窝板定制厂家|不锈钢装饰线条|不锈钢屏风| 电梯装饰板|不锈钢蜂窝板不锈钢工艺板材厂家佛山市钱丰金属制品有限公司 | 清水-铝合金-建筑模板厂家-木模板价格-铝模板生产「五棵松」品牌 | 中宏网-今日新闻-财经新闻| LINK FASHION 童装·青少年装展 河南卓美创业科技有限公司-河南卓美防雷公司-防雷接地-防雷工程-重庆避雷针-避雷器-防雷检测-避雷带-避雷针-避雷塔、机房防雷、古建筑防雷等-山西防雷公司 | 电动百叶窗,开窗器,电动遮阳百叶,电动开窗机生产厂家-徐州鑫友工控科技发展有限公司 | 禹城彩钢厂_钢结构板房_彩钢复合板-禹城泰瑞彩钢复合板加工厂 | 杭州营业执照代办-公司变更价格-许可证办理流程_杭州福道财务管理咨询有限公司 | 自动螺旋上料机厂家价格-斗式提升机定制-螺杆绞龙输送机-杰凯上料机 | 换网器_自动换网器_液压换网器--郑州海科熔体泵有限公司 | 棕刚玉_白刚玉_铝酸钙-锐石新材料| 中原网视台| 石家庄网站建设|石家庄网站制作|石家庄小程序开发|石家庄微信开发|网站建设公司|网站制作公司|微信小程序开发|手机APP开发|软件开发 | 济宁工业提升门|济宁电动防火门|济宁快速堆积门-济宁市统一电动门有限公司 | 净化车间装修_合肥厂房无尘室设计_合肥工厂洁净工程装修公司-安徽盛世和居装饰 | 江苏南京多语种翻译-专业翻译公司报价-正规商务翻译机构-南京华彦翻译服务有限公司 | 淬火设备-钎焊机-熔炼炉-中频炉-锻造炉-感应加热电源-退火机-热处理设备-优造节能 | 热缩管切管机-超声波切带机-织带切带机-无纺布切布机-深圳市宸兴业科技有限公司 | 压片机_高速_单冲_双层_花篮式_多功能旋转压片机-上海天九压片机厂家 | 深圳成考网-深圳成人高考报名网 深圳工程师职称评定条件及流程_深圳职称评审_职称评审-职称网 | 大型工业风扇_工业大风扇_大吊扇_厂房车间降温-合昌大风扇 | 贴片电容-贴片电阻-二三极管-国巨|三星|风华贴片电容代理商-深圳伟哲电子 | 橡胶弹簧|复合弹簧|橡胶球|振动筛配件-新乡市永鑫橡胶厂 | 超声波气象站_防爆气象站_空气质量监测站_负氧离子检测仪-风途物联网 | 杭州营业执照代办-公司变更价格-许可证办理流程_杭州福道财务管理咨询有限公司 | 工控机,嵌入式主板,工业主板,arm主板,图像采集卡,poe网卡,朗锐智科 | 伟秀电气有限公司-10kv高低压开关柜-高低压配电柜-中置柜-充气柜-欧式箱变-高压真空断路器厂家 |