無畏 Rust:循序漸進掌握記憶安全

初學者的變數、控制流、函數、引用、移動語意和借用規則入門指南

從這 3.5 小時的課程,你會學到

  • 使用 fn main() 函數、帶有格式佔位符的 println! 巨集、註解和文件註解編寫並執行 Rust 程式。
  • 使用 let 宣告變數,瞭解預設的不可變性,使用 mut 宣告可變變量,並掌握變數遮蔽。
  • 處理整數、浮點數、布林值、字符,區分字串和 &str,進行類型推斷,使用明確註解,並掌握 Turbofish 語法。
  • 使用 wrapping_addchecked_mulsaturating_subas 關鍵字進行類型轉換,執行具有溢位保護的安全算術運算。
  • 使用 if/else 語句、匹配表達式、模式守衛、解構賦值和窮舉檢查來控製程式流程。
  • 使用帶有 Some/None 的 Option 和帶有 Ok/Err 的 Result 以及 ? 運算子安全地處理缺失值和錯誤。
  • 使用 ranges、break、continue、enumerate()、zip() 和迭代器方法,透過 loop、while 和 for 迴圈自動化任務。
  • 在遵守 Rust 所有權規則的前提下,定義帶有參數、傳回值、參考和可變引用的函數。
  • 使用 mod 將程式碼組織成模組,使用 pub 控制可見性,使用 use 語句,並套用重新匯出模式以建立簡潔的 API。
  • 掌握所有權、移動語意、複製、複製類型、借用規則、可變引用限制和生命週期註解。

要求

  • 無需任何 Rust 經驗——本課程從安裝 Rust 開始,一步一步地建立你的第一個程式。
  • 你需要一台安裝了 Rust(透過 rustup 安裝)且配備文字編輯器的電腦。
  • 樂於嘗試-每節課都包含實作練習,提供可運行的程式碼範例和即時輸出。
  • 只需具備基本的電腦操作能力,例如打字、儲存檔案和使用終端機即可入門。
  • 熟悉任何程式語言都會有所幫助,但並非必需——所有概念都將從零開始講解。

課程說明

本課程包含人工智慧的應用

踏上令人興奮的 Rust 之旅-這門程式語言擁有媲美 C 和 C++ 的強大效能,同時又具備卓越的記憶體安全保障,幾乎杜絕了所有類型的 bug。無論你夢想建立速度快速的 Web 伺服器、堅不可摧的系統軟體,還是只是想編寫完全值得信賴的程式碼,這門入門級課程都將帶你從第一個 println! 開始,逐步掌握 Rust 傳奇般的所有權系統。

你將首先探索 Rust 的獨特之處,了解其所有權系統如何在無需垃圾回收的情況下實現內存安全,探究微軟、Dropbox 和 Facebook 等大型公司為何對 Rust 寄予厚望,以及零成本抽像如何讓你編寫出優美、富有表現力的代碼,並最終編譯成與精心調優的循環相同的優化機器代碼。 你將使用 rustup 安裝 Rust,編寫你的第一個「Hello, World!」程序,並透過 fn main() 入口點和 println! 了解每個 Rust 程式的構造。巨集、主變數、可變性和變數遮蔽——探索為什麼預設不可變並非限制,而是一種強大的功能,可以避免無數 bug。

接下來,你將掌握 Rust 豐富的類型系統,深入學習從 i8 到 i128 的各種整數及其對應的無符號整數,以及 f32 和 f64 精度的浮點數、布林值和支援 Unicode 的字元。你將探索變數綁定和變數遮蔽——學習如何在改變類型的情況下重複使用變數名稱——並透過 wrapping_addsaturating_subchecked_mul 處理具有溢出保護的整數運算。本節涵蓋浮點精度陷阱(為什麼 0.1 + 0.2 != 0.3)、INFINITY 和 NaN 等特殊值、String 與 &str 之間複雜的雙字串系統、帶有短路求值的布林邏輯,以及使用 Turbofish 語法 ::<> 進行類型推斷。

接下來,你將運用 if/else 語句、Rust 強大的 match 表達式(用於使用 guard 和解構進行詳盡的模式匹配)以及 Option 和 Result 類型(消除空指標異常並使錯誤處理更加明確優雅),將你的程式轉化為智慧決策者。你將掌握循環結構——帶有 break-return 值的循環、用於條件迭代的 while 循環以及帶有 Rust 迭代器系統(包括 enumerate()、zip()、iter()、iter_mut() 和 into_iter())的 for 循環——編寫出在編譯時消除索引越界錯誤的萬無一失界的循環。

然後,你將透過學習使用 fn 關鍵字定義可重複使用函數、按值、參考和可變引用傳遞參數,以及使用基於隱式表達式的回傳值和顯式 return 關鍵字傳回值,將你的程式設定等級提升到專業級。你將理解 Rust 的所有權系統如何影響函數簽名,掌握防止資料競爭的引用和借用規則,探索函數作用域和生命週期的基礎知識,並使用 mod、pub、use 和 reexport 模式將不斷增長的程式碼庫組織成結構良好的模組。

最後,你將透過理解堆疊和堆疊的工作原理、掌握所有權的三個基本規則以及探索堆分配資料的移動語義與克隆語義,揭開 Rust 傳奇般的記憶體安全背後的秘密。你將發現哪些類型實現了 Copy trait 以實現自動複製,掌握兩條借用規則(多個不可變引用或一個可變引用),使用基於作用域的模式在可變引用限制下工作,並揭開使用撇號語法進行生命週期註解的神秘面紗——學習 Rust 何時可以推斷生命週期,以及何時需要為持有的函數和結構體提供顯式註釋。

目標受眾

  • 完全零基礎,想要輕鬆、有系統地了解 Rust 的初學者
  • 對 Rust 的概念和生態系統感興趣,但不想編寫程式碼的開發者、工程師和技術領導者
  • 希望為 Web 伺服器、遊戲引擎或嵌入式應用程式編寫快速、安全程式碼的系統程式設計師
  • 正在尋找入門課程的學生和愛好者
  • 任何想要了解 Rust 為何是最受歡迎的程式語言,並掌握其獨特的記憶體管理方法的人

講師簡介

ProgLang MainSt. 程式設計師

ProgLang Main Street 是我教授程式語言課程的地方。目前,我的目標是專注於程式語言的核心概念和語法。不過,我內心深處其實很想拓展課程內容,涉足其他領域。

或許,等我累積了足夠的影片製作經驗後,我就可以踏出這一步了。現在,我還是會堅持自己的方向,一步一腳印地前進。我喜歡製作影片課程,並在這裡分享。這裡對我來說是一個可以安心暢談的理想場所。最棒的是能收到學生們的回饋和互動。

字幕:英文

  • 想要了解如何將英文字幕自動翻譯成中文? 請參考這篇 How-To

  • Udemy 永久擁有課程 許多課程約 NT400(點擊連結看更多)
  • 年訂閱每月 NT350 🌈 悠遊 Udemy 的 26000+ 門課,最大化學習 ( 原價 NT635/月 )
  • Udemy 現在越來越多課程有中文字幕,請參考 Soft & Share 中文線上課程
  • 手機上點選優惠連結看到的價格比電腦上看到的貴
  • $代表當地貨幣, 如在台灣為 NT
  • 點選”報名參加課程”有可能因瀏覽器 cookies 轉久一點或回報錯誤而無法連上,請稍等刷新或重新點選就會出現

報名參加課程

Sponsored by Udemy


也許你會有興趣

不受 FB 演算法影響,歡迎透過 e-mail 訂閱網站更新

發表迴響

這個網站採用 Akismet 服務減少垃圾留言。進一步了解 Akismet 如何處理網站訪客的留言資料

由 WordPress.com 建置.

Up ↑

探索更多來自 Soft & Share 的內容

立即訂閱即可持續閱讀,還能取得所有封存文章。

Continue reading