對於剛學習 Rust 的人來說,最一開始不是看 Youtube 的影片或是跟著 Rust 官方手冊 The Book 學習,這邊來推薦一個練習 Rust 的專案,名為 rustlings。
rustlings 包含著一些簡單的題目,來讓你更習慣閱讀或編寫 Rust 程式碼。該專案會在每道題目上給予提示來幫助你完成題目,並在你完成後提供校對的機制。
在安裝 rustlings 前,必須要先安裝 Rust,到 Installing Rust 並根據自己的作業系統下載。
因為我的環境是 WSL,所以我會依循 Mac/Linux 的步驟來進行下載:
curl -L https://raw.githubusercontent.com/rust-lang/rustlings/main/install.sh | bash -s rustlings/
如果你是 MacOS 使用者:要執行xcode-select --install
如果你是 Linux 使用者:要執行sudo apt install gcc
Windows 的下載方式可以參考 Getting Started - Windows。當然你也直接去 clone 專案都可以。
整個專案的目的很簡單,它會提供一些有問題的程式碼等待你來解決,這些都放在專案下的 exercises/
資料夾裡,完成後就會有檢查機制來幫你檢查。
這邊來介紹第一個監看模式( watch ),就是當 exercises/
裡的程式碼被更改時,就會自動去驗證程式碼是否正確。輸入以下指令來進入監看模式:
rustlings watch
這邊可以看到現在第一個要修改的題目是 exercises/intro/intro1.rs
,在每一題改完並且測試沒問題後,就必須要把程式碼裡的 I AM NOT DONE
這句話移除,否則它是不會跳下一個題目和提示的。
在這個模式下輸入 help
指令來獲得其餘的幫助,例如輸入 hint
可以獲得當前要更改的程式碼的提示、輸入 quit
可以退出目前的模式。
當然你也可以不要進入監看模式就可以驗證你的程式碼,輸入以下指令來驗證:
rustlings verify
或是獲得下一題的提示:
rustlings hint next
這邊來簡單實作一題,因為 intro1
只要你移除 I AM NOT DONE
便可以到下一題,所以這邊我們來直接做第二題 intro2
:
// intro2.rs
//
// Make the code print a greeting to the world.
//
// Execute `rustlings hint intro2` or use the `hint` watch subcommand for a
// hint.
// I AM NOT DONE
fn main() {
println!("Hello {}!");
}
當然不用提示我們都知道問題在哪裡,{}
後面需要再放一個字串來補完整句:
fn main() {
println!("Hello {}!", "World");
}
完成後存檔你就會看到監看模式下有一些不一樣:
包含著測試的結果、進度條、輸出還有你必須移除 I AM NOT DONE
才能跳下一題。
有了這個小工具,可以讓你在讀完官方手冊後有個地方可以複習。