筆者之前一直是做前端開發(fā),最近準(zhǔn)備開始學(xué)習(xí)Rust,Rust的好處很多網(wǎng)上很多文章都有介紹,而且Rust非常適合作為前端學(xué)習(xí)的第二語言。
學(xué)習(xí)Rust之前,第一步就是安裝Rust環(huán)境,筆者是windows環(huán)境,所以主要介紹如何在windows上安裝Rust。
安裝步驟
安裝rustup
Rust是通過rustup工具來管理和安裝的,打開官方安裝地址:https://www.rust-lang.org/tools/install,點(diǎn)擊下載RUSTUP-INIT.EXE(64-BIT),如果你是32位的系統(tǒng),則下載USTUP-INIT.EXE(32-BIT)。安裝C++ build tools
下載安裝包:https://visualstudio.microsoft.com/zh-hans/thank-you-downloading-visual-studio/?sku=BuildTools&rel=16,安裝時請確保選擇“C++ build tools”,并確保包括了 Windows 10 SDK 和英文語言包(English language pack)組件。-
驗(yàn)證
前面兩步都安裝完之后,打開終端,輸入命令:rustc --version如果出現(xiàn)如下格式的信息,則表示安裝成功:
rustc x.y.z (abcabcabc yyyy-mm-dd)
遇到問題
-
代理問題
如果是在公司環(huán)境安裝的話,一般公司網(wǎng)絡(luò)都會設(shè)置代理,所以可能會出現(xiàn)如下問題:info: syncing channel updates for 'stable-x86_64-pc-windows-msvc' error: could not download file from 'https://static.rust-lang.org/dist/channel-rust-stable.toml.sha256' to 'C:\Users\350627\.rustup\tmp\l3ogei4e89gnb1df_file info: caused by: error during download info: caused by: [6] Couldn't resolve host name (Couldn't resolve host 'static.rust-lang.org')解決方案:
將rustup-init.exe保存到downloads目錄,打開powershell,運(yùn)行如下命令:$proxy='http://<IP>:<PORT>' $ENV:HTTP_PROXY=$proxy $ENV:HTTPS_PROXY=$proxy cd ~\Downloads .\rustup-init.exe
Hello, World
安裝好Rust后,開始寫我們的第一個程序:Hello, World
創(chuàng)建項目
找一個你喜歡的目錄,創(chuàng)建文件夾hello,并在文件夾下新建main.rs文件,編輯main.rs文件,輸入以下代碼并保存:
fn main() {
println!("Hello, World");
}
編譯運(yùn)行
回到終端,進(jìn)入hello目錄,輸入如下命令,編譯文件:
rustc main.rs
編譯成功之后,會在該目錄下新增兩個文件:main.exe,main.pdb,運(yùn)行main.exe文件:
> .\main.exe
Hello, World
如果成功打印出了Hello, World,那么恭喜你!已經(jīng)成功入坑Rust!
Cargo
rustc一般用來編譯簡單文件,對于工程化的Rust項目我們可以用cargo來進(jìn)行管理,cargo是Rust的軟件包管理器,提供構(gòu)建代碼,下載庫或依賴項等功能,相當(dāng)于前端的npm工具。
使用Cargo創(chuàng)建項目
要創(chuàng)建一個新項目,使用關(guān)鍵字new,后面跟上項目名稱:
cargo new hello
創(chuàng)建成功后,查看文件目錄,將會看到生成了兩個文件和一個目錄:一個Cargo.toml文件,一個src目錄,以及位于src目錄下的main.rs文件。
用文本編輯器打開Cargo.toml文件:
[package]
name = "hello"
version = "0.1.0"
edition = "2018"
[dependencies]
主要看[dependencies]字段,這個是用來羅列項目所依賴的第三方包的,類似于前端package.json里的dependencies字段。由于新項目還沒有新增依賴,所以這里為空。
使用Cargo運(yùn)行項目
cargo run
關(guān)于Cargo的更多功能請參考官方文檔:https://doc.rust-lang.org/cargo/index.html