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

Rust編程之道

Rust編程之道

定 價(jià):¥128.00

作 者: 張漢東 著
出版社: 電子工業(yè)出版社
叢編項(xiàng):
標(biāo) 簽: 暫缺

ISBN: 9787121354854 出版時(shí)間: 2019-01-01 包裝: 平裝
開本: 16 頁數(shù): 580 字?jǐn)?shù):  

內(nèi)容簡介

  Rust 是一門利用現(xiàn)代化的類型系統(tǒng),有機(jī)地融合了內(nèi)存管理、所有權(quán)語義和混合編程范式的編程語言。它不僅能科學(xué)地保證程序的正確性,還能保證內(nèi)存安全和線程安全。同時(shí),還有能與C/C++語言媲美的性能,以及能和動態(tài)語言媲美的開發(fā)效率。 《Rust編程之道》并非對語法內(nèi)容進(jìn)行簡單羅列講解,而是從四個(gè)維度深入全面且通透地介紹了Rust 語言。從設(shè)計(jì)哲學(xué)出發(fā),探索Rust 語言的內(nèi)在一致性;從源碼分析入手,探索Rust 地道的編程風(fēng)格;從工程角度著手,探索Rust 對健壯性的支持;從底層原理開始,探索Rust 內(nèi)存安全的本質(zhì)。 《Rust編程之道》涵蓋了Rust 2018 的特性,適合有一定編程經(jīng)驗(yàn)且想要學(xué)習(xí)Rust 的初學(xué)者,以及對Rust 有一定的了解,想要繼續(xù)深入學(xué)習(xí)的進(jìn)階者。

作者簡介

  張漢東,80后,資深軟件工程師、企業(yè)獨(dú)立咨詢師、技術(shù)作者譯者。愛好讀書、寫作,喜歡研究技術(shù)、學(xué)習(xí)之道,以及心智和認(rèn)知開發(fā)模式。曾在互聯(lián)網(wǎng)行業(yè)沉浮十余載,先后效力于電商、社交游戲、廣告和眾籌領(lǐng)域。作為企業(yè)獨(dú)立咨詢師,先后為思科、平安科技和閃迪等公司提供咨詢服務(wù)。目前在心智教育及創(chuàng)客領(lǐng)域開疆拓土。是《Ruby原理剖析》一書的譯者。喜歡Rust語言,為Rust語言提交了三次編譯器Bug,并協(xié)助修復(fù)其中之一。為官方Rust 2018 Guide做過貢獻(xiàn),并數(shù)次提出改進(jìn)意見。參與了國內(nèi)Rust社區(qū)的管理和運(yùn)營,在2018年打造了《Rust每日新聞》頻道,深受Rustacean們的喜愛。為初學(xué)者精心打造了Rust必學(xué)第一課:知乎Live《如何系統(tǒng)地學(xué)習(xí)Rust語言》,獲得五星好評。

圖書目錄

第1 章 新時(shí)代的語言 1
1.1 緣起 1
1.2 設(shè)計(jì)哲學(xué) 3
1.2.1 內(nèi)存安全 3
1.2.2 零成本抽象 4
1.2.3 實(shí)用性 5
1.3 現(xiàn)狀與未來 7
1.3.1 語言架構(gòu) 8
1.3.2 開源社區(qū) 9
1.3.3 發(fā)展前景 9
1.4 Rust 代碼如何執(zhí)行 10
1.5 小結(jié) 10
第2 章 語言精要 11
2.1 Rust 語言的基本構(gòu)成 11
2.1.1 語言規(guī)范 11
2.1.2 編譯器 12
2.1.3 核心庫 12
2.1.4 標(biāo)準(zhǔn)庫 12
2.1.5 包管理器 13
2.2 語句與表達(dá)式 13
2.3 變量與綁定 14
2.3.1 位置表達(dá)式和值表達(dá)式 15
2.3.2 不可變綁定與可變綁定 15
2.3.3 所有權(quán)與引用 16
2.4 函數(shù)與閉包 17
2.4.1 函數(shù)定義 17
2.4.2 作用域與生命周期 18
2.4.3 函數(shù)指針 19
2.4.5 CTFE 機(jī)制 20
2.4.6 閉包 20
2.5 流程控制 22
2.5.1 條件表達(dá)式 22
2.5.2 循環(huán)表達(dá)式 23
2.5.3 match 表達(dá)式與模式匹配 24
2.5.4 if let 和while let 表達(dá)式 25
2.6 基本數(shù)據(jù)類型 26
2.6.1 布爾類型 26
2.6.2 基本數(shù)字類型 26
2.6.3 字符類型 27
2.6.4 數(shù)組類型 28
2.6.5 范圍類型 29
2.6.6 切片類型 29
2.6.7 str 字符串類型 30
2.6.8 原生指針 31
2.6.9 never 類型 31
2.7 復(fù)合數(shù)據(jù)類型 32
2.7.1 元組 32
2.7.2 結(jié)構(gòu)體 33
2.7.3 枚舉體 36
2.8 常用集合類型 38
2.8.1 線性序列:向量 38
2.8.2 線性序列:雙端隊(duì)列 39
2.8.3 線性序列:鏈表 40
2.8.4 Key-Value 映射表:HashMap 和BTreeMap 40
2.8.5 集合:HashSet 和BTreeSet 41
2.8.6 優(yōu)先隊(duì)列:BinaryHeap 42
2.9 智能指針 42
2.10 泛型和trait 43
2.10.1 泛型 43
2.10.2 trait 44
2.11 錯(cuò)誤處理 47
2.12 表達(dá)式優(yōu)先級 48
2.13 注釋與打印 48
2.14 小結(jié) 50
第3 章 類型系統(tǒng) 51
3.1 通用概念 51
3.1.1 類型系統(tǒng)的作用 51
3.1.2 類型系統(tǒng)的分類 52
3.1.3 類型系統(tǒng)與多態(tài)性 53
3.2 Rust 類型系統(tǒng)概述 53
3.2.1 類型大小 53
3.2.2 類型推導(dǎo) 58
3.3 泛型 60
3.3.1 泛型函數(shù) 60
3.3.2 泛型返回值自動推導(dǎo) 62
3.4 深入trait 62
3.4.1 接口抽象 63
3.4.2 泛型約束 69
3.4.3 抽象類型 71
3.4.4 標(biāo)簽trait 77
3.5 類型轉(zhuǎn)換 83
3.5.1 Deref 解引用 83
3.5.2 as 操作符 86
3.5.3 From 和Into 88
3.6 當(dāng)前trait 系統(tǒng)的不足 89
3.6.1 孤兒規(guī)則的局限性 90
3.6.2 代碼復(fù)用的效率不高 91
3.6.3 抽象表達(dá)能力有待改進(jìn) 93
3.7 小結(jié) 94
第4 章 內(nèi)存管理 95
4.1 通用概念 95
4.1.1 棧 96
4.1.2 堆 99
4.1.3 內(nèi)存布局 101
4.2 Rust 中的資源管理 103
4.2.1 變量和函數(shù) 103
4.2.2 智能指針與RAII 106
4.2.3 內(nèi)存泄漏與內(nèi)存安全 110
4.2.4 復(fù)合類型的內(nèi)存分配和布局 115
4.3 小結(jié) 117
第5 章 所有權(quán)系統(tǒng) 119
5.1 通用概念 120
5.2 所有權(quán)機(jī)制 123
5.3 綁定、作用域和生命周期 125
5.3.1 不可變與可變 126
5.3.2 綁定的時(shí)間屬性——生命周期 127
5.4 所有權(quán)借用 131
5.5 生命周期參數(shù) 135
5.5.1 顯式生命周期參數(shù) 136
5.5.2 省略生命周期參數(shù) 143
5.5.3 生命周期限定 145
5.5.4 trait 對象的生命周期 145
5.6 智能指針與所有權(quán) 146
5.6.1 共享所有權(quán) Rc和Weak 149 5.6.2 內(nèi)部可變性Cell和RefCell 151 5.6.3 寫時(shí)復(fù)制Cow 153 5.7 并發(fā)安全與所有權(quán) 156
5.8 非詞法作用域生命周期 157
5.9 小結(jié) 161
第6 章 函數(shù)、閉包與迭代器 162
6.1 函數(shù) 162
6.1.1 函數(shù)屏蔽 164
6.1.2 函數(shù)參數(shù)模式匹配 164
6.1.3 函數(shù)返回值 165
6.1.4 泛型函數(shù) 166
6.1.5 方法與函數(shù) 167
6.1.6 高階函數(shù) 168
6.2 閉包 171
6.2.1 閉包的基本語法 172
6.2.2 閉包的實(shí)現(xiàn) 173
6.2.3 閉包與所有權(quán) 178
6.2.4 閉包作為函數(shù)參數(shù)和返回值 184
6.2.5 高階生命周期 190
6.3 迭代器 194
6.3.1 外部迭代器和內(nèi)部迭代器 194
6.3.2 Iterator trait 195
6.3.3 IntoIterator trait 和迭代器 199
6.3.4 迭代器適配器 202
6.3.5 消費(fèi)器 207
6.3.6 自定義迭代器適配器 211
6.4 小結(jié) 214
第7 章 結(jié)構(gòu)化編程 216
7.1 面向?qū)ο箫L(fēng)格編程 217
7.1.1 結(jié)構(gòu)體 217
7.1.2 枚舉體 225
7.1.3 析構(gòu)順序 230
7.2 常用設(shè)計(jì)模式 233
7.2.1 建造者模式 234
7.2.2 訪問者模式 236
7.2.3 RAII 模式 239
7.3 小結(jié) 243
第8 章 字符串與集合類型 244
8.1 字符串 244
8.1.1 字符編碼 244
8.1.2 字符 247
8.1.3 字符串分類 249
8.1.4 字符串的兩種處理方式 251
8.1.5 字符串的修改 253
8.1.6 字符串的查找 256
8.1.7 與其他類型相互轉(zhuǎn)換 265
8.1.8 回顧 270
8.2 集合類型 271
8.2.1 動態(tài)可增長數(shù)組 271
8.2.2 映射集 281
8.3 理解容量 289
8.4 小結(jié) 292
第9 章 構(gòu)建健壯的程序 294
9.1 通用概念 294
9.2 消除失敗 295
9.3 分層處理錯(cuò)誤 297
9.3.1 可選值Option 298 9.3.2 錯(cuò)誤處理Result 302 9.4 恐慌(Panic) 314
9.5 第三方庫 316
9.6 小結(jié) 319
第10 章 模塊化編程 320
10.1 包管理 321
10.1.1 使用Cargo 創(chuàng)建包 321
10.1.2 使用第三方包 323
10.1.3 Cargo.toml 文件格式 331
10.1.4 自定義Cargo 337
10.2 模塊系統(tǒng) 339
10.3 從零開始實(shí)現(xiàn)一個(gè)完整功能包 344
10.3.1 使用Cargo 創(chuàng)建新項(xiàng)目 345
10.3.2 使用structopt 解析命令行參數(shù) 345
10.3.3 定義統(tǒng)一的錯(cuò)誤類型 347
10.3.4 讀取CSV 文件 348
10.3.5 替換CSV 文件中的內(nèi)容 351
10.3.6 進(jìn)一步完善包 353
10.4 可見性和私有性 358
10.5 小結(jié) 360
第11 章 安全并發(fā) 362
11.1 通用概念 362
11.1.1 多進(jìn)程和多線程 363
11.1.2 事件驅(qū)動、異步回調(diào)和協(xié)程 364
11.1.3 線程安全 365
11.2 多線程并發(fā)編程 370
11.2.1 線程管理 371
11.2.2 Send 和Sync 375
11.2.3 使用鎖進(jìn)行線程同步 379
11.2.4 屏障和條件變量 384
11.2.5 原子類型 386
11.2.6 使用Channel 進(jìn)行線程間通信 388
11.2.7 內(nèi)部可變性探究 397
11.2.8 線程池 399
11.2.9 使用Rayon 執(zhí)行并行任務(wù) 407
11.2.10 使用Crossbeam 409
11.3 異步并發(fā) 412
11.3.1 生成器 413
11.3.2 Future 并發(fā)模式 418
11.3.3 async/await 421
11.4 數(shù)據(jù)并行 428
11.4.1 什么是SIMD 429
11.4.2 在Rust 中使用SIMD 430
11.5 小結(jié) 434
第12 章 元編程 435
12.1 反射 436
12.1.1 通過is 函數(shù)判斷類型 436
12.1.2 轉(zhuǎn)換到具體類型 437
12.1.3 非靜態(tài)生命周期類型 439
12.2 宏系統(tǒng) 440
12.2.1 起源 440
12.2.2 Rust 中宏的種類 441
12.2.3 編譯過程 442
12.2.4 聲明宏 445
12.2.5 過程宏 458
12.3 編譯器插件 472
12.4 小結(jié) 475
第13 章 超越安全的邊界 477
13.1 Unsafe Rust 介紹 477
13.1.1 Unsafe 語法 478
13.1.2 訪問和修改可變靜態(tài)變量 480
13.1.3 Union 聯(lián)合體 480
13.1.4 解引用原生指針 483
13.2 基于Unsafe 進(jìn)行安全抽象 484
13.2.1 原生指針 484
13.2.2 子類型與型變 489
13.2.3 未綁定生命周期 494
13.2.4 Drop 檢查 495
13.2.5 NonNull指針 505 13.2.6 Unsafe 與恐慌安全 508
13.2.7 堆內(nèi)存分配 508
13.2.8 混合代碼內(nèi)存安全架構(gòu)三大原則 510
13.3 和其他語言交互 510
13.3.1 外部函數(shù)接口 510
13.3.2 與C/C++語言交互 514
13.3.3 使用Rust 提升動態(tài)語言性能 528
13.4 Rust 與WebAssembly 532
13.4.1 WebAssembly 要點(diǎn)介紹 533
13.4.2 使用Rust 開發(fā)WebAssembly 539
13.4.3 打造WebAssembly 開發(fā)生態(tài) 541
13.5 小結(jié) 543
附錄A Rust 開發(fā)環(huán)境指南 544
附錄B Rust 如何調(diào)試代碼 549

本目錄推薦

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