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

歡迎光臨中圖網 請 | 注冊
> >>
RUST權威指南(第2版)

包郵 RUST權威指南(第2版)

出版社:電子工業出版社出版時間:2025-02-01
開本: 其他 頁數: 704
中 圖 價:¥114.2(6.8折) 定價  ¥168.0 登錄后可看到會員價
加入購物車 收藏
開年大促, 全場包郵
?新疆、西藏除外
本類五星書更多>

RUST權威指南(第2版) 版權信息

RUST權威指南(第2版) 內容簡介

本書由Rust核心開發團隊編寫而成,由淺入深地探討了Rust語言的方方面面。從學習函數、選擇數據結構及綁定變量入手,逐步介紹所有權、trait、生命周期、安全保證等高級概念,模式匹配、錯誤處理、包管理、函數式特性、并發機制等實用工具,以及兩個完整的項目開發實戰案例。 作為開源的系統級編程語言,Rust可以幫助你編寫出更為快速且更為可靠的軟件,在給予開發者底層控制能力的同時,通過深思熟慮的工程設計避免了傳統語言帶來的諸多麻煩。

RUST權威指南(第2版) 目錄

1 入門指南 1
安裝 1
在Linux或macOS環境中安裝Rust 2
在Windows環境中安裝Rust 3
常見問題 3
更新與卸載 4
本地文檔 5
Hello, world! 5
創建一個文件夾 5
編寫并運行一個Rust程序 6
Rust程序剖析 7
編譯與運行是兩個不同的步驟 8
Hello, Cargo! 10
使用Cargo創建一個項目 10
使用Cargo構建和運行項目 13
以Release模式進行構建 15
學會習慣Cargo 15
總結 16
2 編寫一個猜數游戲 17
創建一個新的項目 17
處理一次猜測 19
使用變量存儲值 20
獲得用戶的輸入 21
使用Result類型處理可能失敗的情況 22
通過println!中的占位符輸出對應的值 23
測試**部分 24
生成一個保密數字 24
借助包獲得更多功能 25
生成一個隨機數 28
比較猜測數字與保密數字 31
使用循環實現多次猜測 35
在猜測成功時優雅地退出 37
處理非法輸入 37
總結 40
3 通用編程概念 41
變量與可變性 42
常量 44
隱藏 45
數據類型 47
標量類型 48
復合類型 53
函數 57
參數 59
語句和表達式 60
函數的返回值 62
注釋 65
控制流 66
if表達式 66
使用循環重復執行代碼 70
總結 77
4 認識所有權 78
什么是所有權 78
所有權規則 81
變量作用域 81
String類型 82
內存與分配 83
所有權與函數 90
返回值與作用域 91
引用與借用 93
可變引用 95
懸垂引用 99
引用的規則 101
切片類型 101
字符串切片 103
其他類型的切片 108
總結 109
5 使用結構體組織相關聯的數據 110
定義并實例化結構體 110
使用簡化版的字段初始化方法 113
使用結構體更新語法,基于其他實例來創建新實例 113
使用不需要對字段命名的元組結構體來創建不同的類型 115
沒有任何字段的單元結構體 116
一個使用結構體的示例程序 118
使用元組重構代碼 119
使用結構體重構代碼:增加有意義的描述信息 120
通過派生trait增加實用功能 121
方法 125
定義方法 125
帶有更多參數的方法 129
關聯函數 130
多個impl塊 131
總結 132
6 枚舉與模式匹配 133
定義枚舉 133
枚舉值 134
Option枚舉及其在空值處理方面的優勢 139
控制流結構match 143
綁定值的模式 145
匹配Option<T> 146
匹配必須窮舉所有的可能性 148
通配模式及_占位符 149
簡單控制流if let 151
總結 153
7 使用包、單元包和模塊管理日漸復雜的項目 154
包與單元包 155
通過定義模塊來控制作用域及私有性 160
用于在模塊樹中指明條目的路徑 162
使用pub關鍵字來暴露路徑 165
從super關鍵字開始構造相對路徑 169
將結構體或枚舉聲明為公共的 170
使用use關鍵字將路徑導入作用域 172
創建use路徑時的慣用方式 174
使用as關鍵字來提供新的名稱 175
使用pub use重導出名稱 176
使用外部包 177
使用嵌套路徑來清理眾多的use語句 178
通配符 179
將模塊拆分為不同的文件 180
總結 182
8 通用集合類型 184
使用動態數組存儲多個值 185
創建動態數組 185
更新動態數組 186
讀取動態數組中的元素 186
遍歷動態數組中的值 189
使用枚舉存儲多個類型的值 190
在銷毀動態數組時也會銷毀其中的元素 191
使用字符串存儲UTF-8編碼的文本 192
字符串是什么 192
創建一個新的字符串 193
更新字符串 194
索引字符串 197
字符串切片 200
遍歷字符串的方法 201
字符串的確沒那么簡單 202
在哈希映射中存儲鍵值對 202
創建一個新的哈希映射 203
訪問哈希映射中的值 203
哈希映射與所有權 205
更新哈希映射 205
哈希函數 208
總結 208
9 錯誤處理 210
不可恢復錯誤與panic! 211
可恢復錯誤與Result 215
匹配不同的錯誤 217
傳播錯誤 221
要不要使用panic! 229
示例、原型代碼和測試 229
當你比編譯器擁有更多信息時 230
錯誤處理指導原則 230
創建自定義類型進行有效性驗證 232
總結 235
10 泛型、trait與生命周期 236
通過將代碼提取為函數來減少重復工作 237
泛型數據類型 240
在函數定義中 240
在結構體定義中 243
在枚舉定義中 245
在方法定義中 246
泛型代碼的性能問題 249
trait:定義共享行為 250
定義trait 250
為類型實現trait 251
默認實現 254
使用trait作為參數 256
返回實現了trait的類型 259
使用trait約束有條件地實現方法 260
使用生命周期保證引用的有效性 262
使用生命周期來避免懸垂引用 262
借用檢查器 264
函數中的泛型生命周期 265
生命周期標注語法 267
函數簽名中的生命周期標注 267
深入理解生命周期 271
結構體定義中的生命周期標注 272
生命周期省略 273
方法定義中的生命周期標注 276
靜態生命周期 277

同時使用泛型參數、trait約束與生命周期 278
總結 279
11 編寫自動化測試 280
如何編寫測試 281
測試函數的構成 281
使用assert!宏檢查結果 286
使用assert_eq!和assert_ne!宏判斷相等性 290
添加自定義的錯誤提示信息 293
使用should_panic檢查panic 295
使用Result<T, E>編寫測試 300
控制測試的運行方式 301
并行或串行地運行測試 301
顯示函數輸出 302
運行部分特定名稱的測試 304
通過顯式指定來忽略某些測試 307
測試的組織結構 308
單元測試 309
集成測試 311
總結 316
12 I/O項目:編寫一個命令行程序 317
接收命令行參數 318
讀取參數值 319
將參數值存入變量中 321
讀取文件 322
重構代碼以增強模塊化程度和錯誤處理能力 324
二進制項目的關注點分離 325
修正錯誤處理邏輯 330
從main中分離邏輯 334
將代碼分離為獨立的代碼包 337
使用測試驅動開發編寫庫功能 339
編寫一個會失敗的測試 340
編寫可以通過測試的代碼 343
處理環境變量 347
為不區分大小寫的search函數編寫一個會失敗的測試 347
實現search_case_insensitive函數 349
將錯誤提示信息打印到標準錯誤流而不是標準輸出流 354
確認錯誤被寫到了哪里 354
將錯誤提示信息打印到標準錯誤流 355
總結 356
13 函數式語言特性:迭代器與閉包 357
閉包:能夠捕獲環境的匿名函數 358
使用閉包捕獲環境 358
閉包的類型推斷和類型標注 361
捕獲引用或移動所有權 363
將捕獲的值移出閉包及Fn系列trait 366
使用迭代器處理元素序列 371
Iterator trait和next方法 372
消耗迭代器的方法 373
生成其他迭代器的方法 374
使用閉包捕獲環境 376
改進I/O項目 378
使用迭代器代替clone 378
使用迭代器適配器讓代碼更加清晰 382
在循環與迭代器之間做出選擇 383
比較循環和迭代器的性能 383
總結 386
14 進一步認識Cargo及crates.io 387
使用發布配置定制構建 388
將包發布到crates.io平臺 389
編寫有用的文檔注釋 390
使用pub use導出合適的公共API 393
創建crates.io賬戶 398
為包添加元數據 398
發布到crates.io 400
發布已有包的新版本 401
使用cargo yank命令從crates.io上撤回版本 401
Cargo工作空間 402
創建工作空間 402
在工作空間中創建第二個包 404
使用cargo install安裝二進制文件 409
使用自定義命令擴展Cargo的功能 410
總結 411
15 智能指針 412
使用Box<T>在堆上分配數據 414
使用Box<T>在堆上存儲數據 414
使用裝箱定義遞歸類型 415
通過Deref trait將智能指針視作常規引用 421
跳轉到指針指向的值 421
把Box<T>當成引用來操作 422
定義我們自己的智能指針 423
實現Deref trait 424
函數和方法的隱式解引用轉換 426
解引用轉換與可變性 427
借助Drop trait在清理時運行代碼 428
基于引用計數的智能指針Rc<T> 433
使用Rc<T>共享數據 433
克隆Rc<T>會增加引用計數 436
RefCell<T>和內部可變性模式 438
使用RefCell<T>在運行時檢查借用規則 438
內部可變性:可變地借用一個不可變的值 440
結合使用Rc<T>和RefCell<T>來實現擁有多重所有權的可變數據 448
循環引用會造成內存泄漏 450
創建循環引用 450
使用Weak<T>代替Rc<T>來避免循環引用 454
總結 460
16 無畏并發 461
使用線程同時運行代碼 462
使用spawn創建新線程 463
使用join句柄等待所有線程結束 465
在線程中使用move閉包 467
使用消息傳遞在線程間轉移數據 471
通道和所有權轉移 474
發送多個值并觀察接收者的等待過程 476
通過克隆發送者創建多個生產者 477
共享狀態的并發 479
互斥體一次只允許一個線程訪問數據 479
RefCell<T>/Rc<T>和Mutex<T>/Arc<T>之間的相似性 486
使用Send trait和Sync trait對并發進行擴展 487
允許線程間轉移所有權的Send trait 487
允許多個線程同時訪問的Sync trait 488
手動實現Send和Sync是不安全的 488
總結 489
17 Rust的面向對象編程特性 490
面向對象語言的特性 490
對象包含數據和行為 491
封裝實現細節 491
作為類型系統和代碼共享機制的繼承 493
使用trait對象存儲不同類型的值 495
為共有行為定義一個trait 496
實現trait 498
trait對象會執行動態
展開全部

RUST權威指南(第2版) 作者簡介

Steve?Klabnik曾是Rust的核心開發者及Rust文檔團隊的負責人。他時常參與各種演講,并且是一位十分多產的開源貢獻者。Carol?Nichols曾是Rust核心團隊中的成員,目前是Rust Crates.io團隊成員,也是Integer?32公司(全球首家專注于Rust的軟件咨詢公司)的聯合創始人,以及Rust Belt Rust(Rust鐵銹地帶)會議的組織者。
游戲設計師,一直專注于游戲領域研發,曾負責設計和維護了多個商業游戲的基礎框架。業余時間活躍于Rust開源社區,并嘗試使用Rust來解決游戲領域中的諸多問題。

商品評論(0條)
暫無評論……
書友推薦
返回頂部
中圖網
在線客服
主站蜘蛛池模板: 福州仿石漆加盟_福建仿石漆厂家-外墙仿石漆加盟推荐铁壁金钢(福建)新材料科技有限公司有保障 | 带压开孔_带压堵漏_带压封堵-菏泽金升管道工程有限公司 | 热熔胶网膜|pes热熔网膜价格|eva热熔胶膜|热熔胶膜|tpu热熔胶膜厂家-苏州惠洋胶粘制品有限公司 | 科昊仪器超纯水机系统-可成气相液氮罐-美菱超低温冰箱-西安昊兴生物科技有限公司 | 高精度电阻回路测试仪-回路直流电阻测试仪-武汉特高压电力科技有限公司 | 锌合金压铸-铝合金压铸厂-压铸模具-冷挤压-誉格精密压铸 | 天助网 - 中小企业全网推广平台_生态整合营销知名服务商_天助网采购优选 | 预制舱-电力集装箱预制舱-模块化预制舱生产厂家-腾达电器设备 | 阴离子聚丙烯酰胺价格_PAM_高分子聚丙烯酰胺厂家-河南泰航净水材料有限公司 | 对辊破碎机-液压双辊式,强力双齿辊,四辊破碎机价格_巩义市金联机械设备生产厂家 | 青岛空压机,青岛空压机维修/保养,青岛空压机销售/出租公司,青岛空压机厂家电话 | 西安标准厂房_陕西工业厂房_西咸新区独栋厂房_长信科技产业园官方网站 | 膏剂灌装旋盖机-眼药水灌装生产线-西林瓶粉剂分装机-南通博琅机械科技 | 高低温万能试验机_拉力试验机_拉伸试验机-馥勒仪器科技(上海)有限公司 | 杭州荣奥家具有限公司-浙江办公家具,杭州办公家具厂 | 武汉印刷厂-不干胶标签印刷厂-武汉不干胶印刷-武汉标签印刷厂-武汉标签制作 - 善进特种标签印刷厂 | 宝元数控系统|对刀仪厂家|东莞机器人控制系统|东莞安川伺服-【鑫天驰智能科技】 | 密集架-密集柜厂家-智能档案密集架-自动选层柜订做-河北风顺金属制品有限公司 | 上海平衡机-单面卧式动平衡机-万向节动平衡机-圈带动平衡机厂家-上海申岢动平衡机制造有限公司 | 长春网站建设,五合一网站设计制作,免费优化推广-长春网站建设 | 苗木价格-苗木批发-沭阳苗木基地-沭阳花木-长之鸿园林苗木场 | 注塑模具_塑料模具_塑胶模具_范仕达【官网】_东莞模具设计与制造加工厂家 | 福建省教师资格证-福建教师资格证考试网 | 管家婆-管家婆软件-管家婆辉煌-管家婆进销存-管家婆工贸ERP | 汝成内控-行政事业单位内部控制管理服务商 | 货车视频监控,油管家,货车油管家-淄博世纪锐行电子科技 | 水厂污泥地磅|污泥处理地磅厂家|地磅无人值守称重系统升级改造|地磅自动称重系统维修-河南成辉电子科技有限公司 | 【电子厂招聘_普工招工网_工厂招聘信息平台】-工立方打工网 | 慈溪麦田广告公司,提供慈溪广告设计。 | bkzzy在职研究生网 - 在职研究生招生信息咨询平台 | 宿松新闻网 宿松网|宿松在线|宿松门户|安徽宿松(直管县)|宿松新闻综合网站|宿松官方新闻发布 | 美侍宠物-专注宠物狗及宠物猫训练|喂养|医疗|繁育|品种|价格 | 数码管_LED贴片灯_LED数码管厂家-无锡市冠卓电子科技有限公司 | 亮点云建站-网站建设制作平台 | 合肥地磅_合肥数控切割机_安徽地磅厂家_合肥世佳电工设备有限公司 | 丹尼克尔拧紧枪_自动送钉机_智能电批_柔性振动盘_螺丝供料器品牌 | 全温恒温摇床-水浴气浴恒温摇床-光照恒温培养摇床-常州金坛精达仪器制造有限公司 | 锂电池砂磨机|石墨烯砂磨机|碳纳米管砂磨机-常州市奥能达机械设备有限公司 | ALC墙板_ALC轻质隔墙板_隔音防火墙板_轻质隔墙材料-湖北博悦佳 | 洁净实验室工程-成都手术室净化-无尘车间装修-四川华锐净化公司-洁净室专业厂家 | 在线浊度仪_悬浮物污泥浓度计_超声波泥位计_污泥界面仪_泥水界面仪-无锡蓝拓仪表科技有限公司 |