用 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會員
4Content count
簡單的了解一個關於程式相關的主題
留言0
查看全部
發表第一個留言支持創作者!
Soft Code 的其他內容
Bun 在 2023/9/8 釋出了 1.0 版本,這篇文章就來說一下為什麼 Bun 會被關注,還有該怎麼使用它。
Bun 在 2023/9/8 釋出了 1.0 版本,這篇文章就來說一下為什麼 Bun 會被關注,還有該怎麼使用它。
你可能也想看
Thumbnail
重點摘要: 1.9 月降息 2 碼、進一步暗示年內還有 50 bp 降息 2.SEP 上修失業率預期,但快速的降息速率將有助失業率觸頂 3.未來幾個月經濟數據將繼續轉弱,經濟復甦的時點或是 1Q25 季底附近
Thumbnail
近期的「貼文發佈流程 & 版型大更新」功能大家使用了嗎? 新版式整體視覺上「更加凸顯圖片」,為了搭配這次的更新,我們推出首次貼文策展 ❤️ 使用貼文功能並完成這次的指定任務,還有機會獲得富士即可拍,讓你的美好回憶都可以用即可拍珍藏!
Thumbnail
夏季是一個適合出國旅行的季節,同時也是伴侶間建立更深層連結的絕佳時機,尤其疫情解封後終於可以出國旅遊,關在國內久了難免想看看不同的視野。 但是有許多伴侶往往在國外旅行回來後吵著要分手,其實這些都只是因為彼此不知道該如何溝通與協調。Daniel覺得你可以透過跟伴侶一起計畫出遊這件事,來彼此學習如何一
以前教琴的時候,總是會讓學生回家練習多種速度,下次上課再指定當中某一速度。速度是音樂元素之一,以大區塊分有: 慢、中、快,每種大區塊之間又會分成很多小塊狀,而這樣多變的速度是讓個體練習 #聽覺區辨的好工具。 然而,只有速度適合作為聽覺區辨的工具嗎? 其實不然,除了構成音樂元素適合用來設計聽覺區辨活
Thumbnail
為什麼疫情會在中國傳開?為什麼全世界都無法倖免?我試圖用「瘟疫與人」這本書的論點來重新分析武漢肺炎大流行的遠因
Thumbnail
本篇評論係針對該篇報導:嗆聲「總統府前吊死蔡英文」 網勸:現在戒嚴快刪文! 個人只是覺得看到有人講現在在戒嚴其實挺好笑的,請問究竟是有限制你某粉的什麼人身自由、遷徙自由嗎?還有言論自由也不是無限上綱的,這沒有分誰與誰、是不是某粉的問題。
你有沒有這種經驗, 就是聊天聊到最尾時,大家都感到非常尷尬,因為大家都不知道有什麼可以繼續聊下去,然後對方對自己的興趣開始下降起來。但其實有好多人可以聊天聊得越來越開心, 然後從中因為聊天而變成朋友, 更可以單憑聊天而令他找到另一半。所以其實聊天技巧好的話,一方面可以令人認識自己, 亦可以令人放低對
Thumbnail
刻意練習在前段日子非常盛行,不論是在學校或是在哪裡,當時作者提出一個問題:一堆人學鋼琴、小提琴、舞蹈、圍棋、各項運動,為什麼有些人可以有高手級表現,大部分人卻只有「可接受」的水準? 其實原因是在.....
Thumbnail
聽朋友說:「我跟小孩說,如果你做完了這件事情,那我們就去吃大餐,作為獎賞,你覺得如何? 可是你知道嗎?這種方法有的時候有效,可是有的時候他就還是賴在那邊不想動。就只能一直想其他辦法」
Thumbnail
重點摘要: 1.9 月降息 2 碼、進一步暗示年內還有 50 bp 降息 2.SEP 上修失業率預期,但快速的降息速率將有助失業率觸頂 3.未來幾個月經濟數據將繼續轉弱,經濟復甦的時點或是 1Q25 季底附近
Thumbnail
近期的「貼文發佈流程 & 版型大更新」功能大家使用了嗎? 新版式整體視覺上「更加凸顯圖片」,為了搭配這次的更新,我們推出首次貼文策展 ❤️ 使用貼文功能並完成這次的指定任務,還有機會獲得富士即可拍,讓你的美好回憶都可以用即可拍珍藏!
Thumbnail
夏季是一個適合出國旅行的季節,同時也是伴侶間建立更深層連結的絕佳時機,尤其疫情解封後終於可以出國旅遊,關在國內久了難免想看看不同的視野。 但是有許多伴侶往往在國外旅行回來後吵著要分手,其實這些都只是因為彼此不知道該如何溝通與協調。Daniel覺得你可以透過跟伴侶一起計畫出遊這件事,來彼此學習如何一
以前教琴的時候,總是會讓學生回家練習多種速度,下次上課再指定當中某一速度。速度是音樂元素之一,以大區塊分有: 慢、中、快,每種大區塊之間又會分成很多小塊狀,而這樣多變的速度是讓個體練習 #聽覺區辨的好工具。 然而,只有速度適合作為聽覺區辨的工具嗎? 其實不然,除了構成音樂元素適合用來設計聽覺區辨活
Thumbnail
為什麼疫情會在中國傳開?為什麼全世界都無法倖免?我試圖用「瘟疫與人」這本書的論點來重新分析武漢肺炎大流行的遠因
Thumbnail
本篇評論係針對該篇報導:嗆聲「總統府前吊死蔡英文」 網勸:現在戒嚴快刪文! 個人只是覺得看到有人講現在在戒嚴其實挺好笑的,請問究竟是有限制你某粉的什麼人身自由、遷徙自由嗎?還有言論自由也不是無限上綱的,這沒有分誰與誰、是不是某粉的問題。
你有沒有這種經驗, 就是聊天聊到最尾時,大家都感到非常尷尬,因為大家都不知道有什麼可以繼續聊下去,然後對方對自己的興趣開始下降起來。但其實有好多人可以聊天聊得越來越開心, 然後從中因為聊天而變成朋友, 更可以單憑聊天而令他找到另一半。所以其實聊天技巧好的話,一方面可以令人認識自己, 亦可以令人放低對
Thumbnail
刻意練習在前段日子非常盛行,不論是在學校或是在哪裡,當時作者提出一個問題:一堆人學鋼琴、小提琴、舞蹈、圍棋、各項運動,為什麼有些人可以有高手級表現,大部分人卻只有「可接受」的水準? 其實原因是在.....
Thumbnail
聽朋友說:「我跟小孩說,如果你做完了這件事情,那我們就去吃大餐,作為獎賞,你覺得如何? 可是你知道嗎?這種方法有的時候有效,可是有的時候他就還是賴在那邊不想動。就只能一直想其他辦法」