用 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

2會員
4內容數
簡單的了解一個關於程式相關的主題
留言0
查看全部
發表第一個留言支持創作者!
Soft Code 的其他內容
Bun 在 2023/9/8 釋出了 1.0 版本,這篇文章就來說一下為什麼 Bun 會被關注,還有該怎麼使用它。
Bun 在 2023/9/8 釋出了 1.0 版本,這篇文章就來說一下為什麼 Bun 會被關注,還有該怎麼使用它。
你可能也想看
Google News 追蹤
Thumbnail
這個秋,Chill 嗨嗨!穿搭美美去賞楓,裝備款款去露營⋯⋯你的秋天怎麼過?秋日 To Do List 等你分享! 秋季全站徵文,我們準備了五個創作主題,參賽還有機會獲得「火烤兩用鍋」,一起來看看如何參加吧~
Thumbnail
11/20日NVDA即將公布最新一期的財報, 今天Sell Side的分析師, 開始調高目標價, 市場的股價也開始反應, 未來一週NVDA將重新回到美股市場的焦點, 今天我們要分析NVDA Sell Side怎麼看待這次NVDA的財報預測, 以及實際上Buy Side的倉位及操作, 從
Thumbnail
Hi 大家好,我是Ethan😊 相近大家都知道保濕是皮膚保養中最基本,也是最重要的一步。無論是在畫室裡長時間對著畫布,還是在旅途中面對各種氣候變化,保持皮膚的水分平衡對我來說至關重要。保濕化妝水不僅能迅速為皮膚補水,還能提升後續保養品的吸收效率。 曾經,我的保養程序簡單到只包括清潔和隨意上乳液
Thumbnail
想知道你前世是誰嗎?誰是你前世的靈魂伴侶?你們之間發生過什麽事?你們前世與今生的功課分別是什麼?戳進來,塔羅「前世戀人」牌陣給你答案。
Thumbnail
00940是一個傳奇,創下ETF神級一般的存在。今年三月初始募集五天,即募到1752億台幣。文宣標榜回測的平均殖利達8.6%,於是乎解定存的搶購潮乍現,全民存ETF的時代正式來臨。 時過境未遷,00940已連續四期配出0.05元的現金息,以票面價10元概算的年化殖利率為6%。,,,那8.6%到那裡
Thumbnail
隨著科技的進步,攝影已經成為日常生活的一部分。很多人常說,美麗就藏在細節裡,而用不同的視角去觀察事物,也能感受到截然不同的美感。許多攝影師的靈感都來自於平時生活中會見到的事物。然而,許多人在拍攝時會感到困惑,無法把日常生活中的美好瞬間捕捉下來。要養成拍攝習慣,記錄生活的美好
Thumbnail
分享了最近前往臺灣環島旅遊的經驗,特別是使用Taiwan PASS的心得。
Thumbnail
用越南語寫日記-我用越南米紙做了健康披薩給變胖的老公吃。
Thumbnail
夏季是一個適合出國旅行的季節,同時也是伴侶間建立更深層連結的絕佳時機,尤其疫情解封後終於可以出國旅遊,關在國內久了難免想看看不同的視野。 但是有許多伴侶往往在國外旅行回來後吵著要分手,其實這些都只是因為彼此不知道該如何溝通與協調。Daniel覺得你可以透過跟伴侶一起計畫出遊這件事,來彼此學習如何一
以前教琴的時候,總是會讓學生回家練習多種速度,下次上課再指定當中某一速度。速度是音樂元素之一,以大區塊分有: 慢、中、快,每種大區塊之間又會分成很多小塊狀,而這樣多變的速度是讓個體練習 #聽覺區辨的好工具。 然而,只有速度適合作為聽覺區辨的工具嗎? 其實不然,除了構成音樂元素適合用來設計聽覺區辨活
Thumbnail
為什麼疫情會在中國傳開?為什麼全世界都無法倖免?我試圖用「瘟疫與人」這本書的論點來重新分析武漢肺炎大流行的遠因
Thumbnail
這個秋,Chill 嗨嗨!穿搭美美去賞楓,裝備款款去露營⋯⋯你的秋天怎麼過?秋日 To Do List 等你分享! 秋季全站徵文,我們準備了五個創作主題,參賽還有機會獲得「火烤兩用鍋」,一起來看看如何參加吧~
Thumbnail
11/20日NVDA即將公布最新一期的財報, 今天Sell Side的分析師, 開始調高目標價, 市場的股價也開始反應, 未來一週NVDA將重新回到美股市場的焦點, 今天我們要分析NVDA Sell Side怎麼看待這次NVDA的財報預測, 以及實際上Buy Side的倉位及操作, 從
Thumbnail
Hi 大家好,我是Ethan😊 相近大家都知道保濕是皮膚保養中最基本,也是最重要的一步。無論是在畫室裡長時間對著畫布,還是在旅途中面對各種氣候變化,保持皮膚的水分平衡對我來說至關重要。保濕化妝水不僅能迅速為皮膚補水,還能提升後續保養品的吸收效率。 曾經,我的保養程序簡單到只包括清潔和隨意上乳液
Thumbnail
想知道你前世是誰嗎?誰是你前世的靈魂伴侶?你們之間發生過什麽事?你們前世與今生的功課分別是什麼?戳進來,塔羅「前世戀人」牌陣給你答案。
Thumbnail
00940是一個傳奇,創下ETF神級一般的存在。今年三月初始募集五天,即募到1752億台幣。文宣標榜回測的平均殖利達8.6%,於是乎解定存的搶購潮乍現,全民存ETF的時代正式來臨。 時過境未遷,00940已連續四期配出0.05元的現金息,以票面價10元概算的年化殖利率為6%。,,,那8.6%到那裡
Thumbnail
隨著科技的進步,攝影已經成為日常生活的一部分。很多人常說,美麗就藏在細節裡,而用不同的視角去觀察事物,也能感受到截然不同的美感。許多攝影師的靈感都來自於平時生活中會見到的事物。然而,許多人在拍攝時會感到困惑,無法把日常生活中的美好瞬間捕捉下來。要養成拍攝習慣,記錄生活的美好
Thumbnail
分享了最近前往臺灣環島旅遊的經驗,特別是使用Taiwan PASS的心得。
Thumbnail
用越南語寫日記-我用越南米紙做了健康披薩給變胖的老公吃。
Thumbnail
夏季是一個適合出國旅行的季節,同時也是伴侶間建立更深層連結的絕佳時機,尤其疫情解封後終於可以出國旅遊,關在國內久了難免想看看不同的視野。 但是有許多伴侶往往在國外旅行回來後吵著要分手,其實這些都只是因為彼此不知道該如何溝通與協調。Daniel覺得你可以透過跟伴侶一起計畫出遊這件事,來彼此學習如何一
以前教琴的時候,總是會讓學生回家練習多種速度,下次上課再指定當中某一速度。速度是音樂元素之一,以大區塊分有: 慢、中、快,每種大區塊之間又會分成很多小塊狀,而這樣多變的速度是讓個體練習 #聽覺區辨的好工具。 然而,只有速度適合作為聽覺區辨的工具嗎? 其實不然,除了構成音樂元素適合用來設計聽覺區辨活
Thumbnail
為什麼疫情會在中國傳開?為什麼全世界都無法倖免?我試圖用「瘟疫與人」這本書的論點來重新分析武漢肺炎大流行的遠因