安裝Rust及VSCode環(huán)境設(shè)置(Windows 10)

(歷經(jīng)200多次修改 镰吵,只為更好的內(nèi)容)

DCjanusCrLF0710的幫助讓這一篇教程成為可能锉罐,在此致以真摯地感謝

目錄:

0.試用rust

  1. 安裝Rust
  2. 安裝VScode編輯器及語(yǔ)言服務(wù)器
  3. 安裝調(diào)試工具和插件
  4. 建立項(xiàng)目并進(jìn)行調(diào)試設(shè)置
  5. 附錄:rustlings的使用

〇淌山、試用Rust

如果你只是想試試Rust的語(yǔ)法,請(qǐng)點(diǎn)擊(手機(jī)也可以)

Hello World - 通過(guò)例子學(xué) Rust?rustwiki.org

打開(kāi)后如下,代碼塊中的代碼可以修改巧涧,點(diǎn)擊代碼塊右上角三角形圖標(biāo)運(yùn)行。

image

一遥倦、安裝Rust

  1. 下載Rust安裝工具
  2. 使用鏡像加速Rust安裝
  3. 安裝Rust(兩種工具鏈可供選擇)
  4. 安裝標(biāo)準(zhǔn)庫(kù)源碼
  5. 使用鏡像加速Rust包下載
  6. 設(shè)置Rust包環(huán)境變量

1.下載rustup-init.exe(Rust安裝工具)

點(diǎn)擊下載rustup-init?win.rustup.rs

2. 使用鏡像加速rustup安裝

打開(kāi)Powershell(Win+X +A)執(zhí)行(執(zhí)行完不要關(guān)閉谤绳,后面還會(huì)多次用到):

<pre style="margin: 0px; padding: 0.88889em; font-size: 0.9em; word-break: normal; overflow-wrap: normal; white-space: pre; overflow: auto; background: rgb(246, 246, 246); border-radius: 4px;">[environment]::SetEnvironmentvariable("RUSTUP_DIST_SERVER", "https://mirrors.ustc.edu.cn/rust-static"
, "User")
[environment]::SetEnvironmentvariable("RUSTUP_UPDATE_ROOT", "https://mirrors.ustc.edu.cn/rust-static/ rustup", "User")

</pre>

參考鏈接:https://http://lug.ustc.edu.cn/wiki/mirrors/help/rust-static

3. 安裝Rust:打開(kāi)rustup-init.exe

如果出現(xiàn)安裝程序未經(jīng)微軟驗(yàn)證,點(diǎn)擊install anyway(立即安裝)即可袒哥。

[圖片上傳失敗...(image-ec24b7-1602307315541)]

安裝有2種選擇缩筛,gnu或者msvc工具鏈

  • gnu(本文使用MinGW-w64)占用空間小(500M)堡称,對(duì)于初步的rust使用足夠了瞎抛。
  • msvc(本文使用Visual Studio Build Tools,包含msvc却紧,clang等)占用空間大(2G)桐臊。

已經(jīng)安裝了Visual Studio的選擇msvc,已經(jīng)有MinGW-w64或者msys2晓殊,或者不想占用太多空間的使用gnu断凶。

更多區(qū)別見(jiàn)這個(gè)討論

GCC/G++、ICC巫俺、Clang认烁、MSVC、BCC等C/C++編譯器有什么特長(zhǎng)和不足识藤??www.zhihu.com[圖片上傳失敗...(image-13f825-1602307315539)]

gnu依次輸入(注意每行需回車執(zhí)行):

  • 2
  • x86_64-pc-windows-gnu
  • nightly(想用最新的功能就用nightly(每夜版)砚著,也可以選擇stable(穩(wěn)定版))
  • 一路回車即可,直到看到正在下載中(有kb/s的字樣)

msvc依次輸入:

  • 2
  • x86_64-pc-windows-msvc
  • nightly(想用最新的功能就用nightly(每夜版)痴昧,也可以選擇stable(穩(wěn)定版))
  • 一路回車即可稽穆,直到看到正在下載中(有kb/s的字樣)

這里只是安裝了Rust,這兩種工具鏈到第三部分再下載安裝赶撰。

Rust卸載:

rustup self uninstall

打開(kāi)Rust本地文檔:

rustup doc

Rust中文文檔地址:Rust 程序設(shè)計(jì)語(yǔ)言 簡(jiǎn)體中文版

4. 安裝標(biāo)準(zhǔn)庫(kù)源碼

語(yǔ)言服務(wù)器需要源碼舌镶,打開(kāi)powershell執(zhí)行:

<pre style="margin: 0px; padding: 0.88889em; font-size: 0.9em; word-break: normal; overflow-wrap: normal; white-space: pre; overflow: auto; background: rgb(246, 246, 246); border-radius: 4px;">

 rustup component add rust-src 

</pre>

5. 使用鏡像加速cargo包下載:

打開(kāi)Powershell執(zhí)行:

<pre style="margin: 0px; padding: 0.88889em; font-size: 0.9em; word-break: normal; overflow-wrap: normal; white-space: pre; overflow: auto; background: rgb(246, 246, 246); border-radius: 4px;">

"[source.crates-io]
registry = 'https://github.com/rust-lang/crates.io-index'
replace-with = 'ustc'
[source.ustc]
registry = 'https://mirrors.ustc.edu.cn/crates.io-index/'
"|Out-File -Encoding utf8 $home\.cargo\config

</pre>

腳本在用戶目錄.cargo目錄下新建了文件config,用中科大鏡像加快cargo包下載豪娜。
cargo類似于npm餐胀,是 Rust 的構(gòu)建系統(tǒng)和包管理器。
參考鏈接:https://http://lug.ustc.edu.cn/wiki/mirrors/help/rust-crates

6. 設(shè)置cargo環(huán)境變量(以后的rustup可能會(huì)自動(dòng)設(shè)置)

打開(kāi)Powershell執(zhí)行:

<pre style="margin: 0px; padding: 0.88889em; font-size: 0.9em; word-break: normal; overflow-wrap: normal; white-space: pre; overflow: auto; background: rgb(246, 246, 246); border-radius: 4px;">path = [environment]::GetEnvironmentvariable("Path","User")cargo_path = env:USERPROFILE + "\.cargo\bin"path += cargo_path + ";" [environment]::SetEnvironmentvariable("Path",path,"User")

</pre>


二瘤载、安裝VScode編輯器及語(yǔ)言服務(wù)器

  1. 安裝VSCode(當(dāng)前最流行的代碼編輯器)
  2. 安裝語(yǔ)言服務(wù)器(有兩種可供選擇)
  3. 安裝人工智能補(bǔ)全插件TabNine

1??. 安裝VSCode

https://http://code.visualstudio.com/?code.visualstudio.com

2??. 安裝語(yǔ)言服務(wù)器

有2種選擇否灾,推薦rust-analyzer

  • rls(rust language server)安裝簡(jiǎn)單(新手推薦,安裝后還是可以再安裝rust-analyzer)
  • rust-analyzer(官方維護(hù)的rls 2.0)安裝會(huì)多幾個(gè)步驟(需要安裝node.js鸣奔,需要下載語(yǔ)言服務(wù)器墨技,需要在vscode的setting.json中進(jìn)行設(shè)置)

可以參考

PrivateRookie:VSCode 使用 rust-analyzer?zhuanlan.zhihu.com

Rust Analyzer:一款旨在帶來(lái)優(yōu)秀IDE體驗(yàn)的編譯器?cloud.tencent.com

(一)路線:rls

  1. 安裝rls

安裝語(yǔ)言服務(wù)器惩阶,執(zhí)行

<pre style="margin: 0px; padding: 0.88889em; font-size: 0.9em; word-break: normal; overflow-wrap: normal; white-space: pre; overflow: auto; background: rgb(246, 246, 246); border-radius: 4px;">

rustup component add rls rust-analysis 

</pre>

2.安裝Rust(rls)插件

點(diǎn)擊下面的鏈接,打開(kāi)網(wǎng)頁(yè)后點(diǎn)擊install按鈕扣汪,這會(huì)打開(kāi)vscode断楷,然后install即可

https://http://marketplace.visualstudio.com/items?itemName=rust-lang.rust?marketplace.visualstudio.com

(二)路線:rust-analyzer

1. 安裝node.js

后續(xù)的rust-analyzer需要安裝node.js,下載地址:

https://http://nodejs.org/dist/v12.16.0/node-v12.16.0-x64.msi?nodejs.org

2. 下載rust-analyzer

點(diǎn)擊鏈接下載語(yǔ)言服務(wù)器rust-analyzer-windows.exe

rust-analyzer release?github.com

下載速度慢的話崭别,可以使用2020年5月11日的版本(使用百度網(wǎng)盤下載)冬筒,然后再慢慢下載新版本

鏈接: https://http://pan.baidu.com/s/1jY0qhtxu0lSrerdpCSdDiw 提取碼: v3py

安裝和使用說(shuō)明還可以參考(推薦完整完成后觀看,有很多有用的功能茅主,文末也有鏈接):
https://http://github.com/rust-analyzer/rust-analyzer/blob/master/docs/user/features.md
PrivateRookie:VSCode 使用 rust-analyzer

3. 安裝rust-analyzer插件

  • a. 移動(dòng) rust-analyzer-windows.exe

把前面下載的rust-analyzer-windows.exe放到"C:/Users/你的用戶名/.cargo/bin/文件夾下(注意:替換你的用戶名舞痰。)

  • b. 安裝rust-analyzer插件

點(diǎn)擊下面的鏈接,打開(kāi)網(wǎng)頁(yè)后點(diǎn)擊install按鈕暗膜,這會(huì)打開(kāi)vscode匀奏,然后install即可

rust-analyzer - Visual Studio Marketplace?marketplace.visualstudio.com

安裝后出現(xiàn):沒(méi)有找到語(yǔ)言服務(wù)器,是否下載学搜?點(diǎn)擊Cancel(下一步手動(dòng)設(shè)置)

[圖片上傳失敗...(image-ea5ea8-1602307315541)]

  • c. 插件設(shè)置語(yǔ)言服務(wù)器路徑

vscode中按下F1,輸入open settings论衍,選擇圖中無(wú)Default字樣的

image

在setting.json最后一行添加語(yǔ)言服務(wù)器的路徑瑞佩,注意替換[你的用戶名]

image

<pre style="margin: 0px; padding: 0.88889em; font-size: 0.9em; word-break: normal; overflow-wrap: normal; white-space: pre; overflow: auto; background: rgb(246, 246, 246); border-radius: 4px;">"rust-analyzer.serverPath": "C:/Users/你的用戶名/.cargo/bin/rust-analyzer-windows.exe",</pre>

3??. 安裝TabNine插件(rls和rust-analyzer都推薦安裝)

這是一個(gè)人工智能補(bǔ)全工具,會(huì)給出很多代碼補(bǔ)全提示坯台,很多時(shí)候只需要一直Tab

TabNine - Visual Studio Marketplace?marketplace.visualstudio.com

后面四.2部分會(huì)講到如何激活Rust的人工智能補(bǔ)全炬丸。


三、安裝調(diào)試工具和插件

如果你不進(jìn)行斷點(diǎn)調(diào)試(或不知道它)蜒蕾,只需要安裝調(diào)試工具稠炬,不需要安裝插件。

  1. gnu調(diào)試工具和插件
  2. msvc調(diào)試工具和插件

根據(jù)安裝rust時(shí)的選項(xiàng)咪啡,gnu和msvc工具鏈二選一首启。

(一)路線:gnu工具鏈

這里我們選擇簡(jiǎn)單的mingw-w64,還可以選擇msys2等撤摸。

1. 安裝MinGW-w64

  • 下載MinGW-w64

點(diǎn)擊下載MinGW-w64?nchc.dl.sourceforge.net

  • 設(shè)置選項(xiàng)(64位)

[圖片上傳失敗...(image-f3515f-1602307315541)]

  • 安裝并設(shè)置環(huán)境變量(毅桃!請(qǐng)使用默認(rèn)路徑安裝,否則請(qǐng)手動(dòng)設(shè)置環(huán)境變量)

使用powershell設(shè)置環(huán)境變量

<pre style="margin: 0px; padding: 0.88889em; font-size: 0.9em; word-break: normal; overflow-wrap: normal; white-space: pre; overflow: auto; background: rgb(246, 246, 246); border-radius: 4px;">path = [environment]::GetEnvironmentvariable("Path", "User")mingw_path = ls env:programfiles\mingw-w64\*\mingw64\binmingw_path = mingw_path.toString()path += mingw_path + ";" [environment]::SetEnvironmentvariable("Path",path, "User")

</pre>

我們要用的是MinGW-w64中的gdb調(diào)試工具
32位或詳細(xì)設(shè)置請(qǐng)參考此文:C語(yǔ)言關(guān)注:MinGW-w64安裝教程——著名C/C++編譯器GCC的Windows版本

2. 安裝插件Native Debug(gnu工具鏈)

安裝步驟同rust-analyzer插件

https://http://marketplace.visualstudio.com/items?itemName=webfreak.debug?marketplace.visualstudio.com

(二)路線:msvc工具鏈

  1. 下載安裝Visual Studio 2019 生成工具(build tools)

Thank you for downloading Visual Studio - Visual Studio?visualstudio.microsoft.com

運(yùn)行后准夷,選擇c++ 生成工具钥飞,安裝即可

[圖片上傳失敗...(image-f43d56-1602307315541)]

如果你已經(jīng)安裝了Visual Studio,就無(wú)需安裝build tools衫嵌,

直接在工具——獲取工具和功能中读宙,勾選c++桌面開(kāi)發(fā),安裝即可

[圖片上傳失敗...(image-8dd0fd-1602307315541)]

2. 安裝插件C/C++

C/C++ - Visual Studio Marketplace?marketplace.visualstudio.com

還有一個(gè)CodeLLDB插件楔绞,安裝之后就不需要安裝上面兩類工具鏈和插件(需要python3.5+)结闸,但是安裝插件之后下載它的依賴項(xiàng)時(shí)非常慢掖棉,網(wǎng)速快的人可以試試。


四膀估、建立項(xiàng)目并進(jìn)行調(diào)試設(shè)置

  1. 創(chuàng)建項(xiàng)目并打開(kāi)
  2. 激活TabNine對(duì)Rust的補(bǔ)全
  3. 進(jìn)行項(xiàng)目的調(diào)試設(shè)置(使用斷點(diǎn)調(diào)試)
  4. 試驗(yàn)調(diào)試功能(使用斷點(diǎn)調(diào)試)
  5. F5一鍵運(yùn)行

1 .創(chuàng)建項(xiàng)目并在VSCode里打開(kāi)

比如hello_world幔亥,以測(cè)試調(diào)試功能

  • 在vscode中按下 **Ctrl + ` **(鍵盤Tab上面的鍵)打開(kāi)powershel
  • 切換到你想創(chuàng)建項(xiàng)目的目錄(比如D:)
  • 使用cargo創(chuàng)建項(xiàng)目(否則vscode會(huì)提示缺少Cargo.toml文件)

<pre style="margin: 0px; padding: 0.88889em; font-size: 0.9em; word-break: normal; overflow-wrap: normal; white-space: pre; overflow: auto; background: rgb(246, 246, 246); border-radius: 4px;">cd d:
cargo new hello_world

</pre>

  • 使用Open Folder按鈕打開(kāi)你的hello_world目錄
  • 單擊列表中的main.rs文件,打開(kāi)它

第1部分操作https://www.zhihu.com/video/1180629229510811648

image

2. 激活TabNine對(duì)Rust的補(bǔ)全

TabNine的人工智能補(bǔ)全察纯,需要在相應(yīng)編程語(yǔ)言的文件里編輯模式下輸入TabNine::sem打開(kāi)

[圖片上傳失敗...(image-28513-1602307315541)]

這樣.rs中文件輸入后帕棉,會(huì)打開(kāi)Rust的人工智能補(bǔ)全

如果影響性能,可以輸入TabNine::nosem關(guān)閉

如果你使用的是rust-analyzer饼记,TabNine還會(huì)自動(dòng)安裝rls和racer等

3. 進(jìn)行項(xiàng)目的調(diào)試設(shè)置(不使用斷點(diǎn)調(diào)試請(qǐng)?zhí)^(guò))

  • 打開(kāi)調(diào)試窗口(左側(cè)昆蟲(chóng)圖標(biāo))
  • 點(diǎn)擊設(shè)置圖標(biāo)(齒輪)
  • 選擇彈出的GDB(msvc為)
  • 修改launch.json中的target項(xiàng)(msvc為program項(xiàng))香伴,并添加 preLaunchTask項(xiàng)

a. 路線:gnu

  • 選擇彈出的GDB
  • 修改launch.json中的target項(xiàng),并添加 preLaunchTask項(xiàng)

<pre style="margin: 0px; padding: 0.88889em; font-size: 0.9em; word-break: normal; overflow-wrap: normal; white-space: pre; overflow: auto; background: rgb(246, 246, 246); border-radius: 4px;">"target": "./target/debug/${workspaceFolderBasename}.exe",
"preLaunchTask": "build",
</pre>

b. 路線:msvc

  • 選擇彈出的c++ windows
  • 修改launch.json中的program項(xiàng)具则,并添加 preLaunchTask項(xiàng)

<pre style="margin: 0px; padding: 0.88889em; font-size: 0.9em; word-break: normal; overflow-wrap: normal; white-space: pre; overflow: auto; background: rgb(246, 246, 246); border-radius: 4px;">"program": "./target/debug/${workspaceFolderBasename}.exe",
"preLaunchTask": "build",
</pre>

兩種路線都需要VSCode自動(dòng)生成tasks.json(選擇從template生成—>others)

  • 修改tasks.json中的label項(xiàng)和command項(xiàng)為

<pre style="margin: 0px; padding: 0.88889em; font-size: 0.9em; word-break: normal; overflow-wrap: normal; white-space: pre; overflow: auto; background: rgb(246, 246, 246); border-radius: 4px;">"label": "build",
"command": "cargo build",</pre>

第2部分操作https://www.zhihu.com/video/1180776456249159680

image

4. 修改main.rs的內(nèi)容即纲,并在每行前點(diǎn)擊出紅點(diǎn)(斷點(diǎn)),以方便觀察調(diào)試功能(不使用斷點(diǎn)調(diào)試請(qǐng)?zhí)^(guò))

<pre style="margin: 0px; padding: 0.88889em; font-size: 0.9em; word-break: normal; overflow-wrap: normal; white-space: pre; overflow: auto; background: rgb(246, 246, 246); border-radius: 4px;">fn main() { let mut a = 0; a = 1; a = 5; a = 7; println!("Hello, world!"); } </pre>

第3部分操作https://www.zhihu.com/video/1180631885650321408

image

Tip:VSCode調(diào)試時(shí)博肋,把鼠標(biāo)挪動(dòng)到變量上面低斋,可以顯示當(dāng)前變量值。圖中把鼠標(biāo)移動(dòng)到實(shí)例self上匪凡,懸浮窗顯示了self的值

[圖片上傳失敗...(image-f5aba-1602307315540)]

想要不編譯直接運(yùn)行時(shí)膊畴,在當(dāng)前目錄下中運(yùn)行

cargo run

命令即可
可以使用rust的gdb_rust_pretty_printing,在調(diào)試中enums, slices, vectors等結(jié)構(gòu)會(huì)更好地顯示病游,但也有人覺(jué)得在windows上使用這個(gè)功能不好唇跨,有時(shí)會(huì)導(dǎo)致長(zhǎng)時(shí)間的暫停或卡死具體參考how-to-set-up-gdb-for-debugging-rust-programs-in-windows

5. F5一鍵運(yùn)行

如果你感覺(jué)每次都去點(diǎn)切換debug窗口比較麻煩衬衬,或者不需要斷點(diǎn)調(diào)試买猖,請(qǐng)參照此部分設(shè)置。

如果你還沒(méi)有tasks.json文件滋尉,請(qǐng)?jiān)诿蠲姘澹–trl+Shift+P或F1)輸入

configure task

玉控,選擇
image

修改tasks.json內(nèi)容為(也可以增加其他task,運(yùn)行時(shí)根據(jù)label(標(biāo)簽)進(jìn)行區(qū)分)

<pre style="margin: 0px; padding: 0.88889em; font-size: 0.9em; word-break: normal; overflow-wrap: normal; white-space: pre; overflow: auto; background: rgb(246, 246, 246); border-radius: 4px;">{
// See https://go.microsoft.com/fwlink/?LinkId=733558
// for the documentation about the tasks.json format
"version": "2.0.0",
"tasks": [
{
"label": "run",
"type": "shell",
"command": "cargo run",
"problemMatcher": []
},
{
"label": "build",
"type": "shell",
"command": "cargo build",
"problemMatcher": []
},
{
"label": "release",
"type": "shell",
"command": "cargo build --release",
"problemMatcher": []
},
{
"label": "check",
"type": "shell",
"command": "cargo check",
"problemMatcher": []
},
{
"label": "test",
"type": "shell",
"command": "cargo test",
"problemMatcher": []
},
]
}</pre>

打開(kāi)快捷鍵設(shè)置(Keyboard Shortcuts)

[圖片上傳失敗...(image-95d4de-1602307315540)]

輸入task兼砖,出現(xiàn)下圖

image

找到圖中的Tasks:Rerun Last Task奸远,給它設(shè)置快捷鍵F5。具體方法是雙擊該條目讽挟,出現(xiàn)提示框后按下F5懒叛,然后再按回車。

注意:這會(huì)覆蓋自帶的F5的編譯命令耽梅,如果你需要使用斷點(diǎn)調(diào)試薛窥,也可以使用其他鍵代替比如Ctrl+F5

在該條目上點(diǎn)右鍵,選擇Change When Expression

image

復(fù)制粘貼editorTextFocus && editorLangId == 'rust'

image

這樣就只有rust語(yǔ)言中按下F5才是這個(gè)功能。

同樣诅迷,把Tasks:Run Task設(shè)置為Ctrl+F5(上面如果rerun task為Ctrl+F5佩番,這里就改成其他鍵),同樣需要修改when只在Rust中運(yùn)行罢杉。

我們?cè)賮?lái)說(shuō)說(shuō)這個(gè)功能怎么用趟畏。打開(kāi)main.rs,然后按下Ctrl+F5滩租,會(huì)出現(xiàn)run, build,release,check,test(我們定義的task+項(xiàng)目名)赋秀,選擇按下回車確認(rèn)就行了。

  • run 是直接運(yùn)行
  • build是編譯
  • check 是編譯律想,但不生成可執(zhí)行文件猎莲,比build速度快(用來(lái)檢查是否有錯(cuò)誤)
  • release是按最高性能編譯(比build速度慢,用來(lái)發(fā)布使用技即,平時(shí)沒(méi)有必要使用)
  • test是測(cè)試

關(guān)于build和release的性能詳細(xì)區(qū)別著洼,見(jiàn)這篇文章

霧色:Rust中的零成本抽象(二)(部分翻譯)?zhuanlan.zhihu.com[圖片上傳失敗...(image-b2b800-1602307315539)]

這樣控制臺(tái)會(huì)自動(dòng)運(yùn)行你選擇的命令,vscode沒(méi)有關(guān)閉前而叼,下次按下F5會(huì)運(yùn)行上次命令身笤,不再需要選擇。這樣我們能快速的運(yùn)行該命令查看輸出澈歉,不需要手動(dòng)切換到debug界面展鸡。

如果你安裝的是rust-analyzer,它附帶一個(gè)命令

rust-analyzer:run

埃难,也可以在命令面板(Ctrl+Shift + P)運(yùn)行或者設(shè)置快捷鍵:
它會(huì)顯示提示窗口,并運(yùn)行當(dāng)前位置的二進(jìn)制或者測(cè)試. 在運(yùn)行重復(fù)的單個(gè)測(cè)試時(shí)非常有用涤久,請(qǐng)把這個(gè)綁定到快捷鍵涡尘!


五、附錄:rustlings的使用(強(qiáng)烈推薦)

  1. 安裝rustlings
  2. 使用rustlings
  3. 根據(jù)編譯錯(cuò)誤修改文件以通關(guān)
  4. 總結(jié)與Tip

rustlings是官方的教學(xué)游戲响迂,它的玩法類似解密游戲考抄。通過(guò)解決程序中的錯(cuò)誤通過(guò)關(guān)卡。

它作為和文檔蔗彤、rust-by-example三足鼎力的新手入門教程川梅,確實(shí)讓人感覺(jué)到好玩、驚艷然遏。

  1. 安裝rustlings

在powershell中執(zhí)行贫途,選擇y

<pre style="margin: 0px; padding: 0.88889em; font-size: 0.9em; word-break: normal; overflow-wrap: normal; white-space: pre; overflow: auto; background: rgb(246, 246, 246); border-radius: 4px;">

set-executionpolicy remotesigned

</pre>

接著執(zhí)行(注意cd到你想放項(xiàng)目的文件夾)

<pre style="margin: 0px; padding: 0.88889em; font-size: 0.9em; word-break: normal; overflow-wrap: normal; white-space: pre; overflow: auto; background: rgb(246, 246, 246); border-radius: 4px;">cd home/.rustup/ Invoke-WebRequest https://git.io/rustlings-win | Select-Object -ExpandProperty Content | Out-Fileenv:TMP/install_rustlings.ps1; Unblock-File env:TMP/install_rustlings.ps1; Invoke-Expressionenv:TMP/install_rustlings.ps1

</pre>

如果失敗的話,請(qǐng)手動(dòng)下載安裝(先cd到你要存放rustlings的位置)

<pre style="margin: 0px; padding: 0.88889em; font-size: 0.9em; word-break: normal; overflow-wrap: normal; white-space: pre; overflow: auto; background: rgb(246, 246, 246); border-radius: 4px;">git clone https://github.com/rust-lang/rustlings
cd rustlings
git checkout tags/2.1.0 # or whatever the latest version is (find out at https://github.com/rust-lang/rustlings/releases/latest)
cargo install --force --path .

</pre>

如果有安裝錯(cuò)誤待侵,確保工具鏈?zhǔn)亲钚碌?

<pre style="margin: 0px; padding: 0.88889em; font-size: 0.9em; word-break: normal; overflow-wrap: normal; white-space: pre; overflow: auto; background: rgb(246, 246, 246); border-radius: 4px;">

rustup update

</pre>

2. 使用rustlings

rustlings的題目順序?yàn)槎纾?qǐng)先看過(guò)教程再來(lái)答題(中文教程見(jiàn)文末鏈接)

  1. 變量
  2. if條件
  3. 函數(shù)
  4. 原生類型
  5. 結(jié)構(gòu)體
  6. 枚舉
  7. 模塊
  8. 引用和借用
  9. 錯(cuò)誤處理、option和result
  10. 標(biāo)準(zhǔn)庫(kù)
  11. 其他

使用答題功能,需要在rustlings目錄下執(zhí)行

<pre style="margin: 0px; padding: 0.88889em; font-size: 0.9em; word-break: normal; overflow-wrap: normal; white-space: pre; overflow: auto; background: rgb(246, 246, 246); border-radius: 4px;">

rustlings watch

</pre>

建議在vscode中打開(kāi)這個(gè)文件夾怨酝,然后每次在powershell中運(yùn)行傀缩。

[圖片上傳失敗...(image-2bd5be-1602307315539)]

3. 根據(jù)彈出的編譯錯(cuò)誤修改exercises中的文件

rustlings會(huì)根據(jù)概念難易的順序逐個(gè)編譯文件,當(dāng)編譯錯(cuò)誤的時(shí)候农猬,你需要去修正該錯(cuò)誤文件并保存赡艰。

注意:不要關(guān)閉rustlings watch運(yùn)行的窗口,它會(huì)自動(dòng)檢測(cè)你修改保存的文件

修改完成之后斤葱,如果要跳至下一關(guān)慷垮,則需要把當(dāng)前關(guān)文件中的該行注釋刪除保存。

<pre style="margin: 0px; padding: 0.88889em; font-size: 0.9em; word-break: normal; overflow-wrap: normal; white-space: pre; overflow: auto; background: rgb(246, 246, 246); border-radius: 4px;">//I AM NOT DONE </pre>

4. 流程總結(jié)與Tip

流程就是:

  • 看文檔
  • 再看example
  • 再刷rustlings通關(guān)

注意:在exercises文件夾的每個(gè)分類中苦掘,都有一個(gè)README换帜,里面有當(dāng)前分類對(duì)應(yīng)的rust-by-example的地址,推薦先看再做題(網(wǎng)頁(yè)是英文的鹤啡,可以自己打開(kāi)中文網(wǎng)頁(yè)惯驼,見(jiàn)文末)
Rust中文文檔地址:Rust 程序設(shè)計(jì)語(yǔ)言 簡(jiǎn)體中文版
提示:彈出編譯錯(cuò)誤時(shí),在VSCode中按住Ctrl點(diǎn)擊該文件名递瑰,會(huì)直接打開(kāi)該文件

[圖片上傳失敗...(image-378ebc-1602307315539)]

如有錯(cuò)誤祟牲,請(qǐng)不吝告知!

覺(jué)得好的話抖部,請(qǐng)點(diǎn)贊收藏说贝!讓知乎呈現(xiàn)更多你喜歡的東西。

如果你是初學(xué)者的話慎颗,建議把本網(wǎng)頁(yè)添加到瀏覽器書(shū)簽(Ctrl+ D)乡恕,可以經(jīng)常瀏覽下面的常用鏈接。


常用鏈接:

英文文檔:

rustup doc

Rust 程序設(shè)計(jì)語(yǔ)言 中文版(深圳加速站)?120.78.128.153Rust By Example 中文版?rustwiki.orgCargo - Cargo 中文文檔?cargo.budshome.comrust-analyzer features?github.comPrivateRookie:VSCode 使用 rust-analyzer?zhuanlan.zhihu.com

參考文章:

DCjanus:【新手向】從零開(kāi)始配置Windows下Rust開(kāi)發(fā)環(huán)境圖解?zhuanlan.zhihu.com

CrLF0710:Rust 環(huán)境配置事項(xiàng)一覽?zhuanlan.zhihu.com[圖片上傳失敗...(image-b04dca-1602307315539)] Win7 VSCode 離線安裝Rust語(yǔ)言及環(huán)境配置?www.cnblogs.com
圖標(biāo)
Matrix:Rust和Windows不得不說(shuō)的事兒?zhuanlan.zhihu.com[圖片上傳失敗...(image-7f6583-1602307315539)] 草頭黃:喜歡Rust的理由俯萎,今天發(fā)現(xiàn)了一個(gè)傲宜。用手機(jī)上網(wǎng)也可以編程。編程夫啊,編譯函卒,運(yùn)行,使用依賴庫(kù)撇眯,都能簡(jiǎn)單化报嵌。?zhuanlan.zhihu.com[圖片上傳失敗...(image-f11597-1602307315539)]

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市熊榛,隨后出現(xiàn)的幾起案子锚国,更是在濱河造成了極大的恐慌,老刑警劉巖来候,帶你破解...
    沈念sama閱讀 206,968評(píng)論 6 482
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件跷叉,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī)云挟,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,601評(píng)論 2 382
  • 文/潘曉璐 我一進(jìn)店門梆砸,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人园欣,你說(shuō)我怎么就攤上這事帖世。” “怎么了沸枯?”我有些...
    開(kāi)封第一講書(shū)人閱讀 153,220評(píng)論 0 344
  • 文/不壞的土叔 我叫張陵日矫,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我绑榴,道長(zhǎng)哪轿,這世上最難降的妖魔是什么? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 55,416評(píng)論 1 279
  • 正文 為了忘掉前任翔怎,我火速辦了婚禮窃诉,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘赤套。我一直安慰自己飘痛,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,425評(píng)論 5 374
  • 文/花漫 我一把揭開(kāi)白布容握。 她就那樣靜靜地躺著证九,像睡著了一般祭钉。 火紅的嫁衣襯著肌膚如雪相种。 梳的紋絲不亂的頭發(fā)上遣妥,一...
    開(kāi)封第一講書(shū)人閱讀 49,144評(píng)論 1 285
  • 那天,我揣著相機(jī)與錄音谈跛,去河邊找鬼萌庆。 笑死,一個(gè)胖子當(dāng)著我的面吹牛币旧,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播猿妈,決...
    沈念sama閱讀 38,432評(píng)論 3 401
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼吹菱,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了彭则?” 一聲冷哼從身側(cè)響起鳍刷,我...
    開(kāi)封第一講書(shū)人閱讀 37,088評(píng)論 0 261
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎俯抖,沒(méi)想到半個(gè)月后输瓜,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 43,586評(píng)論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,028評(píng)論 2 325
  • 正文 我和宋清朗相戀三年尤揣,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了搔啊。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 38,137評(píng)論 1 334
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡北戏,死狀恐怖负芋,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情嗜愈,我是刑警寧澤旧蛾,帶...
    沈念sama閱讀 33,783評(píng)論 4 324
  • 正文 年R本政府宣布,位于F島的核電站蠕嫁,受9級(jí)特大地震影響锨天,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜剃毒,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,343評(píng)論 3 307
  • 文/蒙蒙 一病袄、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧迟赃,春花似錦陪拘、人聲如沸。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 30,333評(píng)論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至酌媒,卻和暖如春欠痴,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背秒咨。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 31,559評(píng)論 1 262
  • 我被黑心中介騙來(lái)泰國(guó)打工喇辽, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人雨席。 一個(gè)月前我還...
    沈念sama閱讀 45,595評(píng)論 2 355
  • 正文 我出身青樓菩咨,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親陡厘。 傳聞我的和親對(duì)象是個(gè)殘疾皇子抽米,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,901評(píng)論 2 345