用 rustlings 來練習 Rust 語言

閱讀時間約 3 分鐘

對於剛學習 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
rustlings watch mode

rustlings watch mode

這邊可以看到現在第一個要修改的題目是 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");
}

完成後存檔你就會看到監看模式下有一些不一樣:

rustlings intro2 OK

rustlings intro2 OK

包含著測試的結果、進度條、輸出還有你必須移除 I AM NOT DONE 才能跳下一題。

結語

有了這個小工具,可以讓你在讀完官方手冊後有個地方可以複習。

Github

avatar-img
2會員
4內容數
簡單的了解一個關於程式相關的主題
留言0
查看全部
avatar-img
發表第一個留言支持創作者!
Soft Code 的其他內容
Bun 在 2023/9/8 釋出了 1.0 版本,這篇文章就來說一下為什麼 Bun 會被關注,還有該怎麼使用它。
Bun 在 2023/9/8 釋出了 1.0 版本,這篇文章就來說一下為什麼 Bun 會被關注,還有該怎麼使用它。
你可能也想看
Google News 追蹤
Thumbnail
從範例學python的目標讀者: 針對剛進入的初學者,想學習Python語言。 有基礎本數學邏輯基礎即可。 從小遊戲學python的目標讀者: 針對已經有經驗的C/C++, Python, 或其他有程式基礎的讀者。 想實作一些小專案,從實做中學習如何分析需求、元件分拆、到底層實作
步驟 1: 計劃每天花點時間學習大語言模型的技術部分。 步驟 2: 選擇合適的教材。我選擇了Manning出版的《Build a Large Language Model (From Scratch)》,這本書有配套的程式碼和詳細的講解,是我信賴的學習素材。 步驟 3: 瀏覽教材中的程式
Thumbnail
如果你也是從事軟體相關工作的人,一定會遭遇突然需要你去學習一套你不熟悉的程式語言狀況吧,此時你會怎麼做呢? 是趕快去買書來看嗎? 還是趕快找一門程式課來上? 又或者乾脆去找會的同事來教學?
我們都讀過不少書, 看過不少知識型影片, 成長過程中受到不少科學訓練 我們腦袋裡面其實裝了很多「知識」、「觀念」 包括:如何做筆記、 如何摘要書本重點精華、 如何學好一門知識、 如何讀出文章作者的言外之意、 如何探索自己的情緒與想法、 如何分析當下情況的優劣、 如何做好計畫時
Thumbnail
本文將介紹一些常用的 Linux 指令,幫助新手快速上手。主要內容包括文件和目錄管理(如 ls、cd、mkdir)、檔案操作(如 cp、mv、rm)。通過這些指令的學習,使用者可以更快速地操作 Linux 系統。
Thumbnail
這個系列是專門寫給 0 程式設計經驗的初學者的 C++ 教學, 無需架設環境,直接開始無痛入手 C++ ~
Thumbnail
最近有新的訂閱者加入, 想趁這個機會再分享一次學習心法與建議給第一次練習的讀者、同學們。 如果你本身已經很熟練演算法,那隨機挑題目練習ok,可以測試觀念是否正確,並且驗證寫code的效率與正確程度。 如果是剛畢業或還在學,以前沒有打過程式競賽。 想開始有系統地增強演算法&資料結構的能力
Thumbnail
第一步驟先進行盲聽,肯定啥都聽不懂,第二步驟打開中文字幕確認劇情,第三步驟寫下所有不會的部分,第四步驟逐步跟讀,必須把每個片段都跟讀到耳朵、嘴巴都能跟得上,才能進入第五步驟把剩下來的97次聽完。
Thumbnail
所謂工欲善其事,預先利其器,此書屬於工具書,是一本幫助人們建立好習慣,擺脫壞習慣的強大工具,首先提到習慣的重要性,在提到一些盲點,最後提出一個框架,根據框架每個部分去各個擊破,提出培養好習慣,擺脫壞習慣的方法,最後還有重點整理,非常方便使用
Thumbnail
從範例學python的目標讀者: 針對剛進入的初學者,想學習Python語言。 有基礎本數學邏輯基礎即可。 從小遊戲學python的目標讀者: 針對已經有經驗的C/C++, Python, 或其他有程式基礎的讀者。 想實作一些小專案,從實做中學習如何分析需求、元件分拆、到底層實作
步驟 1: 計劃每天花點時間學習大語言模型的技術部分。 步驟 2: 選擇合適的教材。我選擇了Manning出版的《Build a Large Language Model (From Scratch)》,這本書有配套的程式碼和詳細的講解,是我信賴的學習素材。 步驟 3: 瀏覽教材中的程式
Thumbnail
如果你也是從事軟體相關工作的人,一定會遭遇突然需要你去學習一套你不熟悉的程式語言狀況吧,此時你會怎麼做呢? 是趕快去買書來看嗎? 還是趕快找一門程式課來上? 又或者乾脆去找會的同事來教學?
我們都讀過不少書, 看過不少知識型影片, 成長過程中受到不少科學訓練 我們腦袋裡面其實裝了很多「知識」、「觀念」 包括:如何做筆記、 如何摘要書本重點精華、 如何學好一門知識、 如何讀出文章作者的言外之意、 如何探索自己的情緒與想法、 如何分析當下情況的優劣、 如何做好計畫時
Thumbnail
本文將介紹一些常用的 Linux 指令,幫助新手快速上手。主要內容包括文件和目錄管理(如 ls、cd、mkdir)、檔案操作(如 cp、mv、rm)。通過這些指令的學習,使用者可以更快速地操作 Linux 系統。
Thumbnail
這個系列是專門寫給 0 程式設計經驗的初學者的 C++ 教學, 無需架設環境,直接開始無痛入手 C++ ~
Thumbnail
最近有新的訂閱者加入, 想趁這個機會再分享一次學習心法與建議給第一次練習的讀者、同學們。 如果你本身已經很熟練演算法,那隨機挑題目練習ok,可以測試觀念是否正確,並且驗證寫code的效率與正確程度。 如果是剛畢業或還在學,以前沒有打過程式競賽。 想開始有系統地增強演算法&資料結構的能力
Thumbnail
第一步驟先進行盲聽,肯定啥都聽不懂,第二步驟打開中文字幕確認劇情,第三步驟寫下所有不會的部分,第四步驟逐步跟讀,必須把每個片段都跟讀到耳朵、嘴巴都能跟得上,才能進入第五步驟把剩下來的97次聽完。
Thumbnail
所謂工欲善其事,預先利其器,此書屬於工具書,是一本幫助人們建立好習慣,擺脫壞習慣的強大工具,首先提到習慣的重要性,在提到一些盲點,最後提出一個框架,根據框架每個部分去各個擊破,提出培養好習慣,擺脫壞習慣的方法,最後還有重點整理,非常方便使用