本系列是初階的 Rust 學習歷程。
適合沒有接觸過 Rust 或強型別語言、低階語言、靜態語言的初階工程師,目標是理解 Rust 的寫法,搞懂每一行 code 背後做了什麼,以及了解 Rust 的整體設計,並在學習過程補充一些過往接觸程式語言的時候沒有那麼重視或忽略的觀念。
預期會有所有權完整的講解,以及遇到編譯錯誤要怎麼理解他的錯誤訊息和做修正。
會用盡量簡短的程式範例配合一些情境舉例以及做一些嘗試觀察 Rust 的行為。
Rust 的函數和其他語言基本都差不多,基本結構可以分成兩個部分來理解:函數簽名(function signature) 以及函數本體(function bod...
記憶體管理機制 目前各種程式語言常見的記憶體管理機制主要有兩大類:手動或是垃圾回收機制(Garbage Collector)。 例如 C / C++ 就是用手動...
回顧:所有權轉移 昨天我們介紹了所有權的概念,以及某些型別在賦值給另一個變數時會發生所有權轉移(move)的情況。讓我們再看看還有哪些情況會發生所有權轉移。 函...
引言:部分資料的處理 在處理資料時,我們經常只需要使用部分的資料。例如,當我們需要顯示句子的前幾個字作為預覽時,如何在保留原始資料所有權的同時,高效地處理部分資...
今天延續介紹所有權機制另一個要素的生命週期(lifetime)。 回憶初見生命週期 我們回憶一下在所有權借用有故意寫出一段會造成迷途指標的程式碼,用來舉例 Ru...
簡介 結構體(struct)是 Rust 中的一種自定型別,用來封裝多個相關數值成一個組合的型別,每個數值可以是不同的型別,到這邊和元組(Tuple)是一樣的,...
簡介 我們可以用impl(implementation)關鍵字,後面接定義好的型別名稱,接著用大括號隔出一個區塊,這個區塊內的內容都會和這個型別有關,在這個區塊...
列舉基礎 在程式設計中,我們經常需要表示一個變數可能有多個固定的選項或狀態。例如,一週中的天數、撲克牌的花色、或者用戶的權限等級。這就是列舉(enumerati...
攜帶資料的列舉 上一篇有提到列舉變體可以攜帶不同類型的數據,這裡再針對這種用法來說明。 列舉變體要帶的資料型別其實就分兩種:元組(tuple)型和結構體(str...
簡介 泛型(generics)是一種能讓同一個邏輯應用在不同型別的方式,讓我們能撰寫更加通用且可重用的程式碼。特別是在強型別語言中,泛型讓我們不必為每個不同的型...