戰(zhàn)教程:從零跑通 100 個(gè) Rust 練習(xí)的完整路徑)
100-exercises-to-learn-rust 實(shí)戰(zhàn)教程從零跑通 100 個(gè) Rust 練習(xí)的完整路徑【免費(fèi)下載鏈接】100-exercises-to-learn-rustA self-paced course to learn Rust, one exercise at a time.項(xiàng)目地址: https://gitcode.com/GitHub_Trending/10/100-exercises-to-learn-rust100-exercises-to-learn-rust 是一門邊做邊練的 Rust 學(xué)習(xí)課程帶你從完全不會(huì) Rust 到能獨(dú)立寫出小項(xiàng)目一次一個(gè)練習(xí)。這篇文章會(huì)陪你走完三步克隆倉(cāng)庫(kù)、跑通第一個(gè)練習(xí)的測(cè)試、按順序?qū)W完全部 8 個(gè)模塊。讀完你就能確定自己該怎么安排這套 Rust 練習(xí)題的學(xué)習(xí)節(jié)奏并隨時(shí)驗(yàn)證每一步的答案。 這套 Rust 練習(xí)題到底能幫你做什么課程出自 Mainmatter 的講師團(tuán)隊(duì)原本是給 4 天線下工作坊設(shè)計(jì)的訓(xùn)練材料現(xiàn)在完全開源。它不假設(shè)你懂系統(tǒng)編程或內(nèi)存管理只假設(shè)你會(huì)至少一門其他語(yǔ)言。全部 100 個(gè)練習(xí)被切成 8 個(gè)模塊先寫一個(gè)基礎(chǔ)計(jì)算器熟悉語(yǔ)法然后做一個(gè)工單系統(tǒng)在迭代過(guò)程中自然引入結(jié)構(gòu)體、所有權(quán)、trait、枚舉與錯(cuò)誤處理、集合與迭代器最后進(jìn)入多線程和異步。和其他 Rust 入門材料最大的區(qū)別是練習(xí)本身就是驗(yàn)收標(biāo)準(zhǔn)。每個(gè)練習(xí)目錄都是一個(gè)完整的 Cargo 包題目要求寫在src/lib.rs的注釋里旁邊就配好了測(cè)試套件。你不需要判斷自己是不是學(xué)會(huì)了cargo test全綠才算過(guò)關(guān)。這種測(cè)試即作業(yè)的設(shè)計(jì)讓學(xué)習(xí) Rust 有了非常明確的進(jìn)度條。 首次運(yùn)行只需三步環(huán)境要求很低裝好 Rust 工具鏈已有rustup的話跑一下rustup update確認(rèn)是最新穩(wěn)定版然后克隆倉(cāng)庫(kù)git clone https://gitcode.com/GitHub_Trending/10/100-exercises-to-learn-rust cd 100-exercises-to-learn-rust之后挑一個(gè)練習(xí)目錄比如exercises/02_basic_calculator/03_if_else/進(jìn)去執(zhí)行cargo test第一次跑你會(huì)看到測(cè)試失敗——這是預(yù)期行為因?yàn)轭}目函數(shù)里只有todo!()。推薦配合帶自動(dòng)補(bǔ)全的 IDERustRover或 VS Code 加 rust-analyzer 插件寫 Rust 時(shí)體驗(yàn)會(huì)好很多。官方還提供了一個(gè)叫wrworkshop runner的輔助命令行工具會(huì)在你嘗試跳題時(shí)攔著你確保按順序推進(jìn)裝不裝都行。? 一分鐘看懂目錄結(jié)構(gòu)exercises/ # 100 個(gè)練習(xí)一個(gè)子目錄一道題 02_basic_calculator/ # 類型、控制流、溢出 03_ticket_v1/ # 結(jié)構(gòu)體、模塊、所有權(quán) 04_traits/ # trait 與運(yùn)算符重載 05_ticket_v2/ # 枚舉、Result、錯(cuò)誤處理 06_ticket_management/ # Vec、迭代器、生命周期 07_threads/ # 線程、通道、鎖 08_futures/ # async/await 與運(yùn)行時(shí) book/src/ # 課程正文每個(gè)知識(shí)點(diǎn)一篇 helpers/ # 練習(xí)共用的字段定義與工具函數(shù) Cargo.toml # 整個(gè)倉(cāng)庫(kù)的 workspace 配置book/src/里的 markdown 和exercises/里的目錄是一一對(duì)應(yīng)的先讀正文理解概念再進(jìn)對(duì)應(yīng)練習(xí)動(dòng)手。helpers/下的ticket_fields等包被后面的練習(xí)依賴你一般不用碰它。 單個(gè)練習(xí)的學(xué)習(xí)循環(huán)讀題、實(shí)現(xiàn)、跑測(cè)試以最典型的exercises/02_basic_calculator/03_if_else/為例。題目函數(shù)magic_number的文檔注釋寫著規(guī)則n是偶數(shù)返回 12能被 3 整除返回 13其他情況返回 17。函數(shù)體里只有todo!()而文件下方的測(cè)試模塊已經(jīng)寫好了 5 組斷言覆蓋偶數(shù)、3 的倍數(shù)、大數(shù)等各種邊界。你的工作就是把todo!()換成自己的實(shí)現(xiàn)再用cargo test驗(yàn)證。失敗的測(cè)試會(huì)精確告訴你是哪組斷言沒(méi)過(guò)、期望值和實(shí)際值分別是什么定位問(wèn)題基本不需要調(diào)試手段。建議每完成一個(gè)練習(xí)就提交一次 git既能回溯進(jìn)度也方便隨時(shí)回到某個(gè)已知狀態(tài)重做——課程文檔里也是這么建議的。?? 卡住時(shí)的三個(gè)高頻問(wèn)題編譯報(bào)錯(cuò)全是 borrow 相關(guān)?,F(xiàn)象E0382之類的所有權(quán)錯(cuò)誤改哪兒都不對(duì)。原因Rust 的借用檢查在編譯期錯(cuò)誤信息本身已經(jīng)指向了具體行號(hào)。解法先逐字讀完編譯器給的解釋再去改book/src/03_ticket_v1/06_ownership.md專門講了這個(gè)模塊的背景??床欢疁y(cè)試到底要什么。現(xiàn)象斷言一堆不知道函數(shù)該長(zhǎng)成什么樣。原因注釋和測(cè)試合起來(lái)才是完整題目。解法把src/lib.rs頂部的注釋和每條assert_eq!對(duì)照著讀輸入輸出就都擺在面前了??ㄌ弥苯涌创鸢噶?。原因倉(cāng)庫(kù)里有完整解答分支一查一個(gè)準(zhǔn)。解法給自己定個(gè)上限比如卡 30 分鐘再去看對(duì)應(yīng)練習(xí)的解答看完務(wù)必關(guān)掉答案文件重寫一遍否則等于沒(méi)練。 完成 100 題之后去哪兒課程收尾的book/src/going_further.md給了一份不錯(cuò)的延伸清單想要更短的刷題節(jié)奏可以看 rustlings 項(xiàng)目想換一種視角重學(xué)同樣的概念官方 Rust Book 和《Programming Rust》都不錯(cuò)做后端方向的話《Zero to Production in Rust》本課程作者的又一本書是最自然的下一步。另外建議回頭重做07_threads和08_futures兩個(gè)模塊——并發(fā)和異步是初學(xué) Rust 最容易看懂但寫不出的部分第二遍收益最大。寫在最后100-exercises-to-learn-rust 的核心價(jià)值在于把學(xué)會(huì) Rust這件事拆成了 100 個(gè)可驗(yàn)證的小步驟測(cè)試綠了就是真的會(huì)了。現(xiàn)在就可以打開終端把倉(cāng)庫(kù)克隆下來(lái)進(jìn)第一個(gè)練習(xí)目錄跑一次cargo test。【免費(fèi)下載鏈接】100-exercises-to-learn-rustA self-paced course to learn Rust, one exercise at a time.項(xiàng)目地址: https://gitcode.com/GitHub_Trending/10/100-exercises-to-learn-rust創(chuàng)作聲明:本文部分內(nèi)容由AI輔助生成(AIGC),僅供參考