| | | Rust程序設計(圖靈出品) | 該商品所屬分類:圖書 -> 人民郵電出版社 | 【市場價】 | 1336-1936元 | 【優惠價】 | 835-1210元 | 【作者】 | 吉姆·布蘭迪李松峰 | 【出版社】 | 人民郵電出版社 | 【ISBN】 | 9787115546494 | 【折扣說明】 | 一次購物滿999元台幣免運費+贈品 一次購物滿2000元台幣95折+免運費+贈品 一次購物滿3000元台幣92折+免運費+贈品 一次購物滿4000元台幣88折+免運費+贈品
| 【本期贈品】 | ①優質無紡布環保袋,做工棒!②品牌簽字筆 ③品牌手帕紙巾
| |
版本 | 正版全新電子版PDF檔 | 您已选择: | 正版全新 | 溫馨提示:如果有多種選項,請先選擇再點擊加入購物車。*. 電子圖書價格是0.69折,例如了得網價格是100元,電子書pdf的價格則是69元。 *. 購買電子書不支持貨到付款,購買時選擇atm或者超商、PayPal付款。付款後1-24小時內通過郵件傳輸給您。 *. 如果收到的電子書不滿意,可以聯絡我們退款。謝謝。 | | | | 內容介紹 | |
出版社:人民郵電出版社 ISBN:9787115546494 版次:1 商品編碼:12971660 品牌:iTuring 包裝:平裝 開本:16開 出版時間:2020-09-01 用紙:膠版紙 頁數:476 正文語種:中文 作者:吉姆·布蘭迪,李松峰
" 編輯推薦 1.Rust是一門新的繫統編程語言,兼具C和C++的高性能和底層控制能力,而且能保證內存安全和線程安全,是繫統編程發展史上的一個巨大進步; 2.本書對Rust進行了全面介紹,詳細解釋了這門語言的重要概念,並提供了大量清晰易懂的示例,逐步指導讀者用Rust編寫出既安全又高性能的程序; 3.本書由兩位具有數十年經驗的繫統程序員撰寫,他們不僅分享了自己對Rust的深刻見解,而且還提供了一些建議和操作實踐,對Rust開發者和繫統程序員十分有幫助。
● Rust如何在內存中表示值(輔以圖表) ● 完整解釋了所有權、轉移、借用和生命期 ● Cargo、rustdo測試,以及如何在Rust公共包倉庫上發布代碼 ● 泛型代碼、閉包、集合和迭代器等高級特性 ● Rust中的並發:線程、互斥量、通道和原子操作 ● 不安全代碼,以及如何保持使用常規代碼的完整性 ● 用豐富的例子展示了Rust各方面特性的綜合運用 內容簡介 本書由兩位經驗豐富的繫統程序員撰寫,介紹了一種具有C和C++性能,同時安全且支持並發的新型繫統編程語言Rust,解釋了Rust如何在性能和安全性之間架起橋梁,以及我們如何用好這門語言。書中主要內容包括:Rust的基本數據類型,關於所有權、引用等概念,表達式、錯誤處理、包和模塊、結構體、枚舉與模式等基礎知識,Rust語言的特型與泛型,閉包,迭代器,集合,等等。 作者簡介 吉姆·布蘭迪(Jim Blandy)Mozilla軟件工程師,擁有近40年編程經驗和30年自由軟件開發經驗,是Subversion版本控制繫統最初的設計者之一。
賈森·奧倫多夫(Jason Orendorff)資深軟件工程師,擁有20餘年軟件開發經驗,目前在為Mozilla Firefox Web瀏覽器開發JavaScript引擎。
【譯者介紹】
360前端開發資深專家、前端TC委員、W3C AC代表,任職於“奇舞團”,也是360 Web字體服務“奇字庫”作者。 目錄 前言 xv 第1 章 為什麼是Rust1 第2 章 Rust初體驗5 2.1下載和安裝Rust5 2.2一個簡單的函數7 2.3編寫和測試9 2.4處理命令行參數9 2.5一個簡單的Web服務器13 2.6並發19 2.6.1到底什麼是曼德布洛特集合19 2.6.2解析成對的命令行參數23 2.6.3像素到復數的映射25 2.6.4繪制集合26 2.6.5寫出圖像文件27 2.6.6並發的曼德布洛特程序29 2.6.7運行曼德布洛特繪圖器32 2.6.8安全無形34 第3 章 基本類型35 3.1機器類型38 3.1.1整數類型38 3.1.2浮點類型40 3.1.3布爾類型42 3.1.4字符類型43 3組44 3.3指針類型45 3.3.1引用46 3.3.2Box46 3.3.3原始指針46 3.4數組、向量和切片47 3.4.1數組47 3.4.2向量48 3.4.3素地構建向量51 3.4.4切片51 3.5字符串類型52 3.5.1字符串字面量52 3.5.2字節字符串53 3.5.3字符串在內存中的表示53 3.5.4字符串55 3.5.5使用字符串56 3.5.6其他類似字符串的類型56 3.6更多類型57 第4 章 所有權58 4.1所有權59 4.2轉移63 4.2.1更多轉移操作68 4.2.2轉移與控制流69 4.2.3轉移與索引內容69 4.3Copy類型:轉移的例外71 4.4Rc和Arc:共享所有權74 第5 章 引用76 5.1引用作為值79 5.1.1Rust引用與C++引用79 5.1.2給引用賦值80 5.1.3引用的引用81 5.1.4比較引用81 5.1.5引用永遠不為空82 5.1.6借用對任意表達式的引用82 5.1.7對切片和特型對像的引用83 5.2引用安全83 5.2.1借用局部變量83 5.2.2接收引用作為參數86 5.2.3將引用作為參數傳遞87 5.2.4返回引用88 5.2.5結構體包含引用89 5.2.6不同的生命期參數91 5.2.7省略生命期參數92 5.3共享與修改93 5.4征服對像之海99 第6 章 表達式101 6.1表達式語言101 6.2塊與分號102 6.3聲明103 6.4if與match105 6.5循環107 6.6return表達式109 6.7為什麼Rust有循環110 6.8函數與方法調用111 6.9素112 6.10引用操作符113 6.11算術、位、比較和邏輯操作符113 6.12賦值114 6.13類型轉換114 6.14閉包115 6.15優先級與關聯性116 6.16展望118 第7 章 錯誤處理119 7.1詫異119 7.1.1展開棧120 7.1.2中止進程121 7.2結果121 7.2.1捕獲錯誤121 7.2.2結果類型別名123 7.2.3打印錯誤123 7.2.4傳播錯誤124 7.2.5處理多種錯誤類型125 7.2.6處理“不會發生”的錯誤127 7.2.7忽略錯誤128 7.2.8在main()中處理錯誤128 7.2.9聲明自定義錯誤類型129 7.2.10為什麼是結果130 第8 章 包和模塊131 8.1包131 8.2模塊134 8.2.1把模塊寫在單獨的文件中135 8.2.2路徑和導入136 8.2.3標準前置模塊138 8.2.4特性項,Rust的基礎139 8.3將程序作為庫發布141 8.4src/bin目錄142 8.5屬性143 8.6測試和文檔145 8.6.1集成測試147 8.6.2文檔148 8.6.3文檔測試149 8.7指定依賴152 8.7.1版本152 8.7.2Cargo.lock153 8.8把包發布到crates.io154 8.9工作空間156 8.10還有驚喜156 第9 章 結構體158 9.1命名字段結構體158 9.組結構體161 9.3結構體161 9.4結構體布局162 9.5通過impl定義方法162 9.6泛型結構體165 9.7帶生命期參數的結構體167 9.8為結構體類型派生共有特型168 9.9內部修改能力168 第10 章 枚舉與模式172 10.1枚舉173 10.1.1包含數據的枚舉175 10.1.2枚舉的內存布局176 10.1.3使用枚舉的富數據結構176 10.1.4泛型枚舉178 10.2模式180 10.2.1模式中的字面量、變量和通配符183 10.2組與結構體模式184 10.2.3引用模式185 10.2.4匹配多種可能性187 10.2.5模式護具188 10.2.6@模式188 10.2.7在哪裡使用模式189 10.2.8填充二叉樹190 10.3設計的考量191 第11 章 特型與泛型192 11.1使用特型193 11.1.1特型目標194 11.1.2特型目標布局195 11.1.3泛型函數196 11.1.4使用哪一個199 11.2定義和實現特型200 11.2.1默認方法201 11.2.2特型與其他人的類型202 11.2.3特型中的Self204 11.2.4子特型205 11.2.5靜態方法205 11.3完全限定方法調用207 11.4定義類型關繫的特型208 11.4.1關聯類型(或迭代器工作原理)208 11.4.2泛型特型(或操作符重載的原理)211 11.4.3伴型特型(或rand::random()工作原理)212 11.5逆向工程綁定213 11.6小結216 第12 章 操作符重載217 12.1算術與位操作符218 12.1.操作符220 12.1.操作符221 12.1.3復合賦值操作符221 12.2相等測試222 12.3順序比較225 12.4Index與IndexMut227 12.5其他操作符229 第13 章 實用特型230 13.1Drop231 13.2Sized233 13.3Clone235 13.4Copy236 13.5Deref與DerefMut237 13.6Default239 13.7AsRef與AsMut241 13.8Borrow與BorrowMut242 13.9From與Into244 13.10ToOwned245 13.11Borrow與ToOwned實例:謙遜的奶牛(Cow)246 第14 章 閉包248 14.1捕獲變量249 14.1.1借用值的閉包250 14.1.2盜用值的閉包250 14.2函數與閉包類型252 14.3閉包的性能254 14.4閉包和安全255 14.4.1殺值的閉包255 14.4.2FnOnce256 14.4.3FnMut257 14.5回調259 14.6有效使用閉包261 第15 章 迭代器263 15.1Iterator和IntoIterator特型264 15.2創建迭代器265 15.2.1iter和iter_mut方法265 15.2.2IntoIterator實現266 15.2.3drain方法268 15.2.4其他迭代器源268 15.3迭代器適配器269 15.3.1map和filter269 15.3.2filter_map和flat_map271 15.3.3scan273 15.3.4take和take_while274 15.3.5skip和skip_while274 15.3.6peekable275 15.3.7fuse276 15.3.8可逆迭代器與rev277 15.3.9inspect278 15.3.10chain278 15.3.11enumerate279 15.3.12zip279 15.3.13by_ref280 15.3.14cloned281 15.3.15cycle281 15.4消費迭代器282 15.4.1簡單累計:count、sum和product282 15.4.2max和min283 15.4.3max_by和min_by283 15.4.4max_by_key和min_by_key283 15.4.5比較項序列284 15.4.6any和all285 15.4.7position、rposition和ExactSizeIterator285 15.4.8fold285 15.4.9nth286 15.4.10last286 15.4.11find287 15.4.12構建集合:collect和FromIterator287 15.4.13Extend特型289 15.4.14partition289 15.5實現自己的迭代器290 第16 章 集合294 16.1概述295 16.2Vec296 16.2.1素296 16.2.2迭代298 16.2.3增長和收縮向量298 16.2.4連接300 16.2.5拆分301 16.2.6交換303 16.2.7排序和搜索303 16.2.8比較切片304 16.2.9素305 16.2.10Rust排除無效錯誤305 16.3VecDeque306 16.4LinkedList307 16.5BinaryHeap308 16.6HashMap和BTreeMap309 16.6.1條目311 16.6.2映射迭代313 16.7HashSet和BTreeSet313 16.7.1集迭代314 16.7.2相等的值不相同314 16.7.3整集操作315 16.8散列316 16.9標準集合之外318 第17 章 字符串與文本319 17.1Unicode背景知識319 17.1.1ASCII、Latin-1和Unicode320 17.1.2UTF-8320 17.1.3文本方向性322 17.2字符(char)322 17.2.1字符分類322 17.2.2處理數字322 17.2.3字符大小寫轉換323 17.2.4與整數相互轉換324 17.3String與str324 17.3.1創建字符串值325 17.3.2簡單檢查325 17.3.3追加和插入文本326 17.3.4刪除文本327 17.3.5搜索與迭代的約定327 17.3.6搜索文本的模式328 17.3.7搜索與替換328 17.3.8迭代文本329 17.3.9修剪331 17.3.10字符串大小寫轉換331 17.3.11從字符串解析出其他類型331 17.3.12將其他類型轉換為字符串332 17.3.13作為其他類文本類型借用333 17.3.14訪問UTF-8格式的文本333 17.3.15從UTF-8數據產生文本334 17.3.16阻止分配335 17.3.17字符串作為泛型集合336 17.4格式化值337 17.4.1格式化文本值338 17.4.2格式化數值339 17.4.3格式化其他類型341 17.4.4為調試格式化值341 17.4.5為調試格式化指針342 17.4.6通過索引或名字引用參數342 17.4.7動態寬度與精度343 17.4.8格式化自定義類型344 17.4.9在你的代碼中使用格式化語言345 17.5正則表達式346 17.5.1基本用法347 17.5.2懶構建Regex值348 17.6規範化349 17.6.1規範化形式350 17.6.2unicode-normalization包351 第18 章 輸入和輸出352 18.1讀取器和寫入器353 18.1.1讀取器354 18.1.2緩衝讀取器355 18.1.3讀取文本行356 18.1.4收集行358 18.1.5寫入器359 18.1.6文件360 18.1.7搜尋360 18.1.8其他讀取器和寫入器類型361 18.1.9二進制數據、壓縮與序列化362 18.2文件與目錄364 18.2.1OsStr和Path364 18.2.2Path和PathBuf的方法365 18.2.3文件繫統訪問函數367 18.2.4讀取目錄368 18.2.5平臺特定的特性369 18.3網絡編程370 第19 章 並發373 19.1並行分叉–合並374 19.1.1產生及合並376 19.1.2跨線程錯誤處理377 19.1.3跨線程共享不可修改數據378 19.1.4Rayon380 19.1.5重溫曼德布洛特集合382 19.2通道383 19.2.1發送值385 19.2.2接收值387 19.2.3運行管道388 19.2.4通道特性與性能390 19.2.5線程安全:Send與Sync391 19.2.6將所有迭代器都接到通道上393 19.2.7超越管道394 19.3共享可修改狀態395 19.3.1什麼是互斥量395 19.3.2Mutex397 19.3.3mut與Mutex398 19.3.4互斥量的問題399 19.3.5死鎖399 19.3.6中毒的互斥量400 19.3.7使用互斥量的多消費者通道400 19.3.8讀/寫鎖(RwLock)401 19.3.9條件變量(Condvar)402 19.3.10原子類型403 19.3.11全局變量404 19.4習慣編寫Rust並發代碼406 第20 章 宏407 20.1宏基礎408 20.1.1宏擴展基礎409 20.1.2意外結果410 20.1.3重復411 20.2內置宏413 20.3調試宏414 20.4json!宏415 20.4.1片段類型416 20.4.2在宏裡使用遞歸419 20.4.3在宏裡使用特型419 20.4.4作用域與自淨宏421 20.4.5導入和導出宏424 20.5匹配時避免語法錯誤425 20.6超越macro_rules!426 第21 章 不安全代碼427 21.1不安全源自哪裡428 21.2不安全的塊429 21.3不安全的函數431 21.4不安全的塊還是不安全的函數433 21.5未定義行為434 21.6不安全的特型435 21.7原始指針437 21.7.1安全解引用原始指針439 21.7.2示例:RefWithFlag440 21.7.3可空指針442 21.7.4類型大小與對齊442 21.7.5指針算術443 21.7.6移入和移出內存444 21.7.7示例:GapBuffer447 21.7.8不安全代碼中的詫異安全性453 21.8外來函數:在Rust中調用C和C++453 21.8.1查找共有數據表示454 21.8.2聲明外來函數和變量456 21.8.3使用庫函數458 21.8.4libgit2的原始接口461 21.8.5libgit2的安全接口466 21.9小結475 作者介紹476 封面介紹476 查看全部↓
" | | | | | |