幫助中心 | 我的帳號 | 關於我們

Rust編程很簡單

  • 作者:(紐西蘭)大衛·麥克勞德|責編:楊源|譯者:王鵬//母春航
  • 出版社:機械工業
  • ISBN:9787111784371
  • 出版日期:2025/08/01
  • 裝幀:平裝
  • 頁數:486
人民幣:RMB 109 元      售價:
放入購物車
加入收藏夾

內容大鋼
    這是一本專為初學者量身打造的Rust編程指南,無論你是編程新手還是希望快速提升Rust編程技巧的開發者,本書都是你的不二之選。本書共有24章,包括基礎知識,內存、變數和所有權,更複雜的類型,泛型、Option和Result,集合與錯誤處理,迭代器和閉包,生命周期和內部可變性,多線程,Box和Rust文檔,測試,默認值、構建者模式和Deref,常量、不安全的Rust、外部crates,非同步Rust,標準庫、宏等。從基礎概念到高級特性,全面覆蓋,無須複雜設置。本書都將以清晰易懂的方式,引領你步入Rust編程的殿堂,開啟高效、安全編程的新篇章。
    本書適合想要系統學習Rust編程語言的初學者閱讀,也適合經驗豐富的程序員細細品味。

作者介紹
(紐西蘭)大衛·麥克勞德|責編:楊源|譯者:王鵬//母春航
    王鵬     谷歌開發者專家,位元組跳動資深研發,十多年大廠經驗,參與過多款國民級應用的設計研發,CSDN、掘金等平台簽約作者,活躍于各技術社區,目前致力於Rust推廣與實踐。

目錄

前言
第1章  一些基礎知識
  1.1  註釋
  1.2  原始類型:整數、字元和字元串
  1.3  類型推斷
  1.4  浮點數
  1.5  Hello World和列印
  1.6  聲明變數和代碼塊
  1.7  顯示和調試
  1.8  最小值和最大值
  1.9  可變性
  1.10  變數遮蔽(Shadowing)
  1.11  總結
第2章  內存、變數和所有權
  2.1  棧、堆和指針
  2.2  字元串
  2.3  常量和靜態變數
  2.4  引用的更多內容
  2.5  可變引用
    2.5.1  Rust的引用規則
    2.5.2  情景一:只有一個可變引用
    2.5.3  情景二:僅有不可變引用
    2.5.4  情景三:問題情況
  2.6  再聊聊變數遮蔽
  2.7  將引用傳遞給函數
  2.8  複製(Copy)類型
  2.9  變數沒有值
  2.10  關於列印的更多內容
  2.11  總結
第3章  更複雜的類型
  3.1  集合類型
    3.1.1  數組
    3.1.2  Vec(向量)
    3.1.3  元組
  3.2  控制流
    3.2.1  基本控制流
    3.2.2  匹配語句
    3.2.3  循環
  3.3  總結
第4章  構建你自己的類型
  4.1  結構體和枚舉概述
    4.1.1  結構體
    4.1.2  枚舉
    4.1.3  將枚舉類型轉換為整數
    4.1.4  枚舉使用多種類型
    4.1.5  實現結構體和枚舉
  4.2  解構
  4.3  引用和點運算符
  4.4  總結

第5章  泛型、Option和Result
  5.1  泛型
  5.2  Option和Result
    5.2.1  Option
    5.2.2  Result
    5.2.3  其他一些模式匹配的方法
  5.3  總結
第6章  更多的集合,更多的錯誤處理
  6.1  其他集合
    6.1.1  HashMap和BTreeMap
    6.1.2  HashSet和BTreeSet
    6.1.3  二叉堆
    6.1.4  VecDeque
  6.2  問號運算符
  6.3  當panic和unwrap是合適的
  6.4  總結
第7章  特性:使不同類型執行相同的操作
  7.1  特性:基礎知識
    7.1.1  你所需要的只是方法簽名
    7.1.2  更複雜的例子
    7.1.3  特性約束
    7.1.4  Traits類似於資格認證
  7.2  From特性
  7.3  孤兒規則
  7.4  繞過孤兒規則的方法之一是使用新類型
  7.5  在函數中接受String和&str
  7.6  總結
第8章  迭代器和閉包
  8.1  方法鏈
  8.2  迭代器
  8.3  閉包和迭代器中的閉包
  8.4  總結
第9章  再談迭代器和閉包!
  9.1  閉包和迭代器的有用方法
    9.1.1  映射和過濾
    9.1.2  更多的迭代器和相關方法
    9.1.3  在迭代器中檢查和查找項目
    9.1.4  循環、壓縮、摺疊等
  9.2  調試宏dbg!和.inspect
  9.3  總結
第10章  生命周期和內部可變性
  10.1  &str的類型
  10.2  生命周期註解
    10.2.1  函數中的生命周期
    10.2.2  類型中的生命周期註解
    10.2.3  匿名生命周期
  10.3  內部可變性
    10.3.1  Cell
    10.3.2  RefCell
    10.3.3  Mutex

    10.3.4  RwLock
  10.4  總結
第11章  多線程及更多內容
  11.1  在函數內部導入和重命名
  11.2  todo! 宏
  11.3  類型別名
  11.4  Cow
  11.5  Rc
    11.5.1  Rc的存在原因
    11.5.2  實踐中使用Rc
    11.5.3  使用Rc避免生命周期註解
  11.6  多線程
    11.6.1  創建線程
    11.6.2  使用JoinHandle等待線程完成
    11.6.3  閉包的類型
    11.6.4  使用move關鍵字
  11.7  總結
第12章  關於閉包、泛型和線程的更多內容
  12.1  閉包作為參數
    12.1.1  一些簡單的閉包
    12.1.2  FnOnce、FnMut和Fn之間的關係
    12.1.3  閉包都是獨一無二的
    12.1.4  閉包示例
  12.2  impl Trait
    12.2.1  常規泛型與impl Trait的比較
    12.2.2  使用impl Trait返回閉包
  12.3  Arc
  12.4  作用域線程
  12.5  通道(Channel)
    12.5.1  通道基礎
    12.5.2  實現一個通道
  12.6  總結
第13章  Box和Rust文檔
  13.1  閱讀Rust文檔
    13.1.1  assert_eq
    13.1.2  搜索
    13.1.3  ?src?按鈕
    13.1.4  特性信息
    13.1.5  屬性
  13.2  Box
    13.2.1  Box的基礎知識
    13.2.2  將traits放入Box
    13.2.3  使用Box處理多種錯誤類型
    13.2.4  將trait對象向下轉型為具體類型
  13.3  總結
第14章  測試
  14.1  包和模塊
    14.1.1  模塊基礎
    14.1.2  關於pub關鍵字的更多信息
    14.1.3  模塊內的模塊

  14.2  測試
    14.2.1  只需添加#?test?,它就變成了一個test
    14.2.2  當測試失敗時發生了什麼
    14.2.3  編寫多個測試
  14.3  測試驅動開發(TDD)
    14.3.1  構建一個計算器:從編寫測試開始
    14.3.2  真正將計算器拼湊起來
  14.4  總結
第15章  默認值、構建者模式和Deref
  15.1  實現Default
  15.2  構建者模式
    15.2.1  編寫構建者方法
    15.2.2  在構建者模式中添加最終檢查
    15.2.3  使構建者模式更嚴格
  15.3  Deref和DerefMut
    15.3.1  Deref基礎知識
    15.3.2  實現Deref
    15.3.3  實現DerefMut
    15.3.4  錯誤使用Deref
  15.4  總結
第16章  常量、不安全的Rust、外部crates
  16.1  常量泛型
  16.2  常量函數
  16.3  可變的靜態變數
  16.4  不安全的Rust
    16.4.1  概述
    16.4.2  在不安全的Rust中使用靜態可變變數
    16.4.3  Rust中最著名的不安全方法
    16.4.4  以_unchecked結尾的方法
  16.5  引入外部crate
    16.5.1  Crates和Cargo.toml
    16.5.2  使用rand crate
    16.5.3  使用rand函數擲骰子
  16.6  總結
第17章  Rust最流行的crate
  17.1  serde
  17.2  標準庫中的時間
  17.3  chrono
    17.3.1  檢查外部庫中的代碼
    17.3.2  再次回到chrono
  17.4  rayon
  17.5  anyhow和thiserror
    17.5.1  anyhow
    17.5.2  thiserror
  17.6  通用特性實現
  17.7  lazy_static和once_cell
    17.7.1  lazy_static:延遲評估的靜態變數
    17.7.2  OnceCell:只能寫入一次的單元
  17.8  總結
第18章  在你的電腦上使用Rust

  18.1  Cargo
    18.1.1  為什麼每個人都使用Cargo
    18.1.2  使用Cargo和Rust編譯時的操作
  18.2  處理用戶輸入
    18.2.1  通過stdin的用戶輸入
    18.2.2  訪問命令行參數
    18.2.3  訪問環境變數
  18.3  使用文件
    18.3.1  創建文件
    18.3.2  打開現有文件
    18.3.3  使用OpenOptions處理文件
  18.4  Cargo doc
  18.5  總結
第19章  更多crate和非同步Rust
  19.1  reqwest crate
  19.2  特性標誌
  19.3  非同步Rust
    19.3.1  非同步基礎
    19.3.2  檢查Future是否準備好
    19.3.3  使用非同步運行時
    19.3.4  關於非同步Rust的其他一些細節
  19.4  總結
第20章  標準庫之旅
  20.1  數組
    20.1.1  數組現在實現了迭代器
    20.1.2  解構和映射數組
    20.1.3  使用from_fn創建數組
  20.2  字元(char)
  20.3  整數
    20.3.1  檢查操作
    20.3.2  Add特性和其他類似特性
  20.4  浮點數
  20.5  關聯項和關聯常量
    20.5.1  關聯函數
    20.5.2  關聯類型
    20.5.3  關聯常量
  20.6  bool
  20.7  Vec
  20.8  String
  20.9  OsString和CString
  20.10  總結
第21章  繼續遊覽標準庫
  21.1  std?mem
  21.2  設置panic鉤子
  21.3  查看回溯(backtrace)
  21.4  標準庫的前言(prelude)
  21.5  其他宏
    21.5.1  unreachable
    21.5.2  column!, line!, file module_path
    21.5.3  thread_local

    21.5.4  cfg
  21.6  總結
第22章  編寫自己的宏
  22.1  宏存在的原因
  22.2  編寫基本宏
  22.3  從標準庫中讀取宏
  22.4  使用宏保持代碼整潔
  22.5  總結
第23章  項目實戰——半成品項,需要等你完成
  23.1  為最後兩章設置項目
  23.2  打字教程
    23.2.1  設置和第一段代碼
    23.2.2  開發代碼
    23.2.3  進一步開發和清理
    23.2.4  現在輪到你了
  23.3  維基百科文章摘要搜索器
    23.3.1  設置和第一段代碼
    23.3.2  開發代碼
    23.3.3  進一步開發和清理
    23.3.4  現在輪到你了
  23.4  終端秒錶和時鐘
    23.4.1  設置和第一段代碼
    23.4.2  開發代碼
    23.4.3  進一步開發和清理
    23.4.4  現在輪到你了
  23.5  總結
第24章  項目實戰,繼續挑戰未完成的項目
  24.1  網頁伺服器猜詞遊戲
    24.1.1  設置和第一段代碼
    24.1.2  開發代碼
    24.1.3  進一步開發和清理
    24.1.4  現在輪到你了
  24.2  激光筆
    24.2.1  設置和第一段代碼
    24.2.2  開發代碼
    24.2.3  進一步開發和清理
    24.2.4  現在輪到你了
  24.3  目錄和文件導航器
    24.3.1 &n