Rust — 入門指南(rustup- cargo-
Rust 是一種_系統級編程語言_,rust-lang.org 有一個很棒的定義:
一種使每個人都能夠構建可靠和高效軟件的語言。
我喜歡 Rust,它不僅強大而且非常安全。它的所有權模型可以消除許多常見錯誤。但是對於 C#、Java 和 JavaScript 等語言的程序員來說,學習曲線可能有點陡峭。
本文旨在對 Rust 及其工具鏈進行簡單的介紹。如果想深入地瞭解可以看下面的內容
-
Rust 網站的 Learn 部分 (https://www.rust-lang.org/learn)
-
Herbert Wolverson 的 Hands on Rust (https://hands-on-rust.com/)
我們開始入門 Rust 吧!
首先你需要一個開發環境,你可以使用本地的環境,但我們推薦使用 https://GeekCode.cloud 雲開發環境,上面有 Rust 的依賴庫和編譯加速功能,可以讓你更方便的使用 rust 功能。打開 GeekCode 後我們選擇 Rust 環境,就可以操作下面的命令了。
安裝 Rust
有幾種方法可以在你的系統上安裝 Rust(你甚至可以在不安裝的情況下試用它 (https://geekcode.cloud))。有兩個關鍵組成部分需要了解:
-
rustup 是一個命令行工具,它可以作爲編譯器的工具鏈。
-
cargo 是用於管理 projects、crates(rust 包)的命令行,並且是我們在處理 Rust 項目時最常使用的工具。
我們可以:
-
從 rust-lang.org 的 Getting Started 部分獲取 Rust,
-
或者訪問 rustup.rs 並按照安裝說明進行操作,
-
最簡單的方法是訪問 GeekCode.cloud 使用雲環境。
我們安裝了 rustup 或直接使用雲環境後,可以嘗試以下命令:
-
測試你的安裝
$ rustup -v
-
檢查更新
$ rustup check
-
更新你的安裝
$ rustup update
現在我們的 Rust 已經開始運行了,讓我們進入 cargo。
Cargo — Rust 構建工具和包管理器
C_argo_ cli 工具是我們最常使用的工具。它負責運行構建、運行測試和準備項目以供發佈。我們還用 cargo 打包 Rust(在 Rust 中包被稱爲 _crates_),我們可以在 crates.io 上查看全部的 crate。
首先,我們來創建一個項目,然後瞭解一些常見的 cargo 選項。
建立一個新項目
$ cargo new {project_name}
-
創建一個新的 Hello World 程序,它使用默認項目結構、main.rs 文件和 Cargo.toml 項目文件。
-
默認情況下,這是一個二進制應用程序(如果我們需要開發 library / crate,添加
-lib
選項)。 -
默認情況下,Git 已初始化(可以使用其他開關自定義 / 禁用 )
-
最好堅持使用 _snake_case 來命名,因爲這是 Rust 規範。
Cargo 基礎知識
$ cargo check
- 驗證程序結構——這不會編譯我們的程序,但會確保項目文件結構正確
$ cargo build
-
在調試模式下構建應用程序
-
如果它不存在,這將在項目的根目錄中創建一個 target 文件夾
-
添加 -release 切換到 release 模式構建(見下文)
$ cargo clean
- 清理(即刪除)構建文件,比如構建期間生成的任何二進制文件
$ cargo run
- 運行程序 - 如果尚未構建,這也將構建應用程序
$ cargo test
- 運行項目中存在的任何測試(默認腳手架中不會有任何測試)
Cargo target — Release vs Debug
默認情況下,cargo build
和 cargo run
將在 DEBUG 模式下構建項目。要構建項目以發佈到生產環境,請將 --release
參數添加到 cargo —
$ cargo [build|run] --release
當你構建一個 Rust 項目時,無論結果如何,都會創建一個 target 文件夾,並在其下方提供相關的構建配置。在 DEBUG 中構建時,文件夾結構將如下所示 -
…/project_root/target/debug/{build artefacts}
Rust 是一種編譯語言,這意味着默認情況下,將使用運行的機器架構編譯進行構建工作。Rust 還支持交叉編譯,允許我們構建二進制文件在其他架構上執行。
例如,Rust 編譯爲 WebAssembly (https://www.rust-lang.org/what/wasm)!,我們可以像這樣在 cargo build 命令中添加一個目標——
$ cargo build --release --target=wasm32-unknown-unknown
這將創建以下文件夾結構(需要添加 --release
參數,和生成的子文件夾)-
…/project_root/target/wasm32-unknown-unknown/release/{build artefacts}
代碼格式化
Rust 有一個內置的格式化程序,你可以閱讀這裏 (https://github.com/rust-lang/rustfmt)。安裝後,我們可以運行 -
$ cargo fmt
這會將代碼格式化爲 Rust 編碼標準。如果我們想自定義樣式,可以通過 添加 rustfmt.toml 在你的項目。
Clippy — 代碼提示和建議
Rust 有一個用於代碼提示和指導的內置工具(即 linter),稱爲 _clippy,_詳細內容在 Clippy 的 GitHub 頁面 (https://github.com/rust-lang/rust-clippy) 。運行 clippy 將分析代碼併爲我們提供建議和改進:
$ cargo clippy
我們可以通過多種方式配置 Clippy,但對於初學者使用 clippy 嚴格建議非常有幫助。只需在我們的 main.rs 中首行添加:
#![warn(clippy::all,clippy::pedantic)]
Clippy 的建議有很多級別,但默認 pedantic 級別審查,通常已經足夠。
總結
我們現在應該能夠創建一個新的 Rust 項目並且對 Rust 工具鏈、linter 和建議有一個很好的瞭解。
Rust 標準庫雖然很棒,但我們仍需要利用 Rust 社區貢獻的許多第三方庫。
所以接下來,我們會繼續介紹 Rust 的包管理。
Stay Rusty!
本文由 Readfog 進行 AMP 轉碼,版權歸原作者所有。
來源:https://mp.weixin.qq.com/s/tl9IjPSA0KH-Wzl69txqIw