從零開始學 Rust
你好!這篇教學的主要目的是讓完全沒寫過程式的初學者理解 Rust 這個程式語言中的各種概念。雖然網路上已經有很多 Rust 的教學了,但以前的教學似乎都是寫給已經會至少另一個程式語言的學習者,因此我希望這份教學能填補這樣的空白。Rust 這個語言有著很鮮明的特色,Rust 的功能強大,用 Rust 寫的程式執行效率也高,並且使用 Rust 的時候,還更容易在寫程式初期提早發現錯誤。大家都聽過的 C++ 雖然同樣也是功能強大且執行效率高,但在安全性上頭卻做了不少犧牲。因為 Rust 如上所述的特性,Rust 也在這個以 AI 寫程式的時代佔有舉足輕重的地位。
這份教學的思路也因此比較符合目前 AI 時代的開發流程,教學中並不會提供各種「作業」,認為你一定要能寫出特定規格的算法。取而代之的是,這份教學會讓你有辦法讀懂 Rust 的程式大概在做什麼,也希望能讓你理解一個真正軟體的架構是怎麼被設計出來的。甚至我會說,如果你懶得使用電腦的話,單單閱讀本教學而不實際撰寫程式來學習 Rust 也是一種可行的方式。
儘管如此,我還是建議學習者一章一章閱讀本教學,如果你有靜態語言的基礎,你或許可以跳過第 1 章,但我更推薦的方法還是簡單花幾分鐘掃過第 1 章之後再往後繼續閱讀。如果是完全的初學者就更不用說了。當然,要是你不怕漏掉什麼內容的話,你也可以直接跳到有興趣的部分看,或者是使用搜尋功能提前閱讀教學後面才給的解釋,這些都是可行的做法。啊對了,文中有一章「附錄一」,雖然叫作附錄但也建議讀者能全部觀看。
如果讀者在閱讀的過程中遇到看不懂的段落、想要練習題,或寫的程式跑不起來,而想問 AI 怎麼辦,我提供了一個壓縮檔給 AI 閱讀,讓 AI 能更精準回應你的需求。使用的時候只要把整份壓縮檔上傳給 AI,和他說「請先閱讀壓縮檔裡的 GUIDE.md 再回答我」,並且告訴 AI 你目前讀到第幾章第幾集再提出你的需求就好了。壓縮檔的下載連結如下:
rust-book-src.zip:https://andyshiue.github.io/learning-rust-from-zero/zh-TW/rust-book-src.zip
強烈建議要用好一點的 AI 模型讀壓縮檔!免費的 AI 甚至可能完全懶得讀壓縮檔內的內容。
有點遲鈍的是,我後來才意識到很多讀者可能會直接把整部教學丟給 AI 閱讀而非親自閱讀。如果你還認真讀前言讀到了這邊,又或者是你的 AI 讀到了這部分的內容,我對這樣讀者的想法是:
- 我的確曾經想過有人會用這樣的閱讀方式,但並沒有想到有那麼多人會採取。的確那也是閱讀我教學的其中一個方法。
- 儘管如此,教學本文的存在是有意義的,否則我就不會撰寫。只在遇到不懂的程式碼時問 AI 可能會造成讀者只有能力閱讀程式,卻無法寫出程式,但我也承認這些人也是我本來就設定好的客群。
- 教學本文的意義在於你能一步步建立對 Rust 各個功能的全面理解。
- 就算你使用 AI 幫助閱讀,那也不代表需要的時候你不能回來閱讀教學本文。
- 其實你並不一定要去 GitHub 對我的專案進行
git clone;上面的.zip檔已經包含了本教學的全部內容(你可以手動解壓縮看看)。之所以會建議使用壓縮檔而非直接閱讀網頁是因為壓縮檔中的內容是純文字,對於 AI 會更友善。 - 我後來才發現,現代「完全的初學者」可能並沒有那麼多,因此會想跳過第 1 章。上面有說這或許可行,但如果你發現自己好像沒搞懂最基礎的概念,第 1 章的本文都非常短,閱讀一下真的不需要花多少時間。
- 請特別注意非同步一章的前半。那部分的精髓就在於練習讀懂程式碼,就算你用 AI 閱讀也一樣。在此特別推薦一書:Asynchronous Programming in Rust。本教學的非同步一章是參考該書後自己重寫出來的。
另外本教學也有 PDF 版供讀者下載:
PDF 版:https://andyshiue.github.io/learning-rust-from-zero/zh-TW/book.pdf
但我可能不會長期維護 PDF 版,因此還是比較建議閱讀有互動功能的網頁版教學。如果你現在就正在閱讀 PDF 版的話,以下是網頁版的網址:
網頁版:https://andyshiue.github.io/learning-rust-from-zero/zh-TW/
最後提一下上面說的互動功能,不然怕沒人知道:你可以直接在網頁版教學裡面跑程式。文內程式原始碼的右上角有幾個按鈕,按了就知道會發生什麼事了。大概先這樣吧……
本教學除大綱外,初稿由 AI 完成,並經人類修改:
- 模型:Claude 4.5 ~ 5 / GPT-5.5 ~ 5.6
- 馬具:OpenClaw / Claude Code / ChatGPT (Codex)