Rust — 入門指南(rustup- cargo-

Rust 是一種_系統級編程語言_,rust-lang.org 有一個很棒的定義:

 

一種使每個人都能夠構建可靠和高效軟件的語言。

我喜歡 Rust,它不僅強大而且非常安全。它的所有權模型可以消除許多常見錯誤。但是對於 C#、Java 和 JavaScript 等語言的程序員來說,學習曲線可能有點陡峭。

本文旨在對 Rust 及其工具鏈進行簡單的介紹。如果想深入地瞭解可以看下面的內容

我們開始入門 Rust 吧!

首先你需要一個開發環境,你可以使用本地的環境,但我們推薦使用 https://GeekCode.cloud 雲開發環境,上面有 Rust 的依賴庫和編譯加速功能,可以讓你更方便的使用 rust 功能。打開 GeekCode 後我們選擇 Rust 環境,就可以操作下面的命令了。

安裝 Rust

有幾種方法可以在你的系統上安裝 Rust(你甚至可以在不安裝的情況下試用它 (https://geekcode.cloud))。有兩個關鍵組成部分需要了解:

我們可以:

我們安裝了 rustup 或直接使用雲環境後,可以嘗試以下命令:

現在我們的 Rust 已經開始運行了,讓我們進入 cargo

Cargo — Rust 構建工具和包管理器

C_argo_ cli 工具是我們最常使用的工具。它負責運行構建、運行測試和準備項目以供發佈。我們還用 cargo 打包 Rust(在 Rust 中包被稱爲 _crates_),我們可以在 crates.io 上查看全部的 crate。

首先,我們來創建一個項目,然後瞭解一些常見的 cargo 選項。

建立一個新項目

$ cargo new {project_name}

Cargo 基礎知識

$ cargo check

$ cargo build

$ 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