Rust 以安全、效能與現代化設計聞名,但同時也因「所有權」與「借用」的獨特機制讓初學者感到卻步。本系列將以 30 天為期,從零開始理解 Rust 的語法特色、所有權模型、錯誤處理方式與模組化設計。過程中不僅會學習到核心觀念,也會透過實作小專案累積經驗,包含數字遊戲、文字統計工具等,最終完成一個CLI 專案。
1. 為什麼需要進階錯誤處理昨天的小專案已經用過 Result 來避免程式崩潰,但那只是基本應用。今天我想更深入了解在不同錯誤情境下,該怎麼區分可恢復與不可恢復...
1. 為什麼需要自訂錯誤在前幾天的學習中,Result<T, E> 的 E 通常是 io::Error 或 String,但在實際專案裡,常會遇到多...
1. 為什麼需要生命週期(Lifetime)在 Rust 中,所有的引用(reference)都有明確的存活範圍,編譯器必須確保引用的值在使用期間不會被釋放。生...
1. 為什麼需要 Lifetime Elision昨天學到每當函數有引用參數時,就要標註 'a 等生命週期,但如果每個地方都手動標註,程式會變得冗長。Rust...
1. 為什麼要結合這三者在前面幾天,我分別學了泛型(讓程式能處理不同型別)、trait(限制泛型的行為),以及生命週期(確保引用安全),今天要學的就是這三者如何...
1. 為什麼需要智慧指標在前幾天,我學到 Rust 的變數預設是放在堆疊(stack)上,而像 String 這樣的資料則會在堆積(heap)上配置記憶體。但有...
1. 為什麼需要 Rc在 Rust 的所有權規則中,一個值同一時間只能有一個擁有者。但有時候,我們希望能讓多個變數共同擁有一份資料,像多個節點同時指向同一段記憶...
1. 為什麼需要 Arc昨天學到的 Rc 可以讓多個擁有者共享同一份資料,但它不能跨執行緒使用,在多執行緒環境中,如果多個 thread 同時修改引用計數,會導...
1. 為什麼需要 RefCell在 Rust 中,所有的可變性通常都必須在編譯期就確定。你不能同時擁有多個可變引用(&mut),也不能在程式執行中改變一...
專案主題製作一個可以在命令列互動操作的「任務清單(Todo List)」系統,讓使用者能夠新增任務、標記完成或顯示目前清單。 1. 規劃我希望讓多個使用者都能操...