iT邦幫忙

鐵人檔案

2025 iThome 鐵人賽
回列表
Rust

Rust 30 天養成計畫:從零到 CLI 專案 系列

Rust 以安全、效能與現代化設計聞名,但同時也因「所有權」與「借用」的獨特機制讓初學者感到卻步。本系列將以 30 天為期,從零開始理解 Rust 的語法特色、所有權模型、錯誤處理方式與模組化設計。過程中不僅會學習到核心觀念,也會透過實作小專案累積經驗,包含數字遊戲、文字統計工具等,最終完成一個CLI 專案。

鐵人鍊成 | 共 30 篇文章 | 1 人訂閱 訂閱系列文 RSS系列文
DAY 21

Day 21:錯誤處理進階與 panic! 的使用

1. 為什麼需要進階錯誤處理昨天的小專案已經用過 Result 來避免程式崩潰,但那只是基本應用。今天我想更深入了解在不同錯誤情境下,該怎麼區分可恢復與不可恢復...

2025-10-05 ‧ 由 irishung121 分享
DAY 22

Day 22:自訂錯誤型別與 Result 應用進階

1. 為什麼需要自訂錯誤在前幾天的學習中,Result<T, E> 的 E 通常是 io::Error 或 String,但在實際專案裡,常會遇到多...

2025-10-06 ‧ 由 irishung121 分享
DAY 23

Day 23:生命週期(Lifetimes)

1. 為什麼需要生命週期(Lifetime)在 Rust 中,所有的引用(reference)都有明確的存活範圍,編譯器必須確保引用的值在使用期間不會被釋放。生...

2025-10-07 ‧ 由 irishung121 分享
DAY 24

Day 24:生命週期進階與自動推導(Lifetime Elision)

1. 為什麼需要 Lifetime Elision昨天學到每當函數有引用參數時,就要標註 'a 等生命週期,但如果每個地方都手動標註,程式會變得冗長。Rust...

2025-10-08 ‧ 由 irishung121 分享
DAY 25

Day 25:泛型、Trait Bound 與生命週期的綜合應用

1. 為什麼要結合這三者在前面幾天,我分別學了泛型(讓程式能處理不同型別)、trait(限制泛型的行為),以及生命週期(確保引用安全),今天要學的就是這三者如何...

2025-10-09 ‧ 由 irishung121 分享
DAY 26

Day 26:智慧指標(Smart Pointers)與 Box<T>

1. 為什麼需要智慧指標在前幾天,我學到 Rust 的變數預設是放在堆疊(stack)上,而像 String 這樣的資料則會在堆積(heap)上配置記憶體。但有...

2025-10-10 ‧ 由 irishung121 分享
DAY 27

Day 27:Rc<T> 與多重擁有權(Reference Counting)

1. 為什麼需要 Rc在 Rust 的所有權規則中,一個值同一時間只能有一個擁有者。但有時候,我們希望能讓多個變數共同擁有一份資料,像多個節點同時指向同一段記憶...

2025-10-11 ‧ 由 irishung121 分享
DAY 28

Day 28:Arc<T> 與多執行緒共享資料

1. 為什麼需要 Arc昨天學到的 Rc 可以讓多個擁有者共享同一份資料,但它不能跨執行緒使用,在多執行緒環境中,如果多個 thread 同時修改引用計數,會導...

2025-10-12 ‧ 由 irishung121 分享
DAY 29

Day 29:RefCell<T> 與內部可變性(Interior Mutability)

1. 為什麼需要 RefCell在 Rust 中,所有的可變性通常都必須在編譯期就確定。你不能同時擁有多個可變引用(&amp;mut),也不能在程式執行中改變一...

2025-10-13 ‧ 由 irishung121 分享
DAY 30

Day 30:小專案 — 可互動任務清單

專案主題製作一個可以在命令列互動操作的「任務清單(Todo List)」系統,讓使用者能夠新增任務、標記完成或顯示目前清單。 1. 規劃我希望讓多個使用者都能操...

2025-10-14 ‧ 由 irishung121 分享