rust學(xué)習(xí)筆記02

Hello,World!

mkdir -p ~/IdeaProjects/rust-projects
cd ~/IdeaProjects/rust-projects
mkdir hello-world
cd hello-world
vim main.rs
  • main.rs 內(nèi)容
fn main() {
    // println! 調(diào)用了一個 Rust 宏(macro)。如果是調(diào)用函數(shù),則應(yīng)輸入 println(沒有!)。
    // "Hello, world!" 是一個字符串。我們把這個字符串作為一個參數(shù)傳遞給 println!,字符串將被打印到屏幕上。
    // 該行以分號結(jié)尾(;),這代表一個表達(dá)式的結(jié)束和下一個表達(dá)式的開始。大部分 Rust 代碼行以分號結(jié)尾。
    println!("Hello, world!");
}
# 編譯
rustc main.rs
# 運行
./main
# 輸出 Hello, world!

Hello,Cargo!

Cargo 是 Rust 的構(gòu)建系統(tǒng)和包管理器。大多數(shù) Rustacean 們使用 Cargo 來管理他們的 Rust 項目,因為它可以為你處理很多任務(wù),比如構(gòu)建代碼、下載依賴庫并編譯這些庫。(我們把代碼所需要的庫叫做 依賴(dependencies))。

  • 檢查cargo是否正確安裝
cargo --version
cd ~/IdeaProjects/rust-projects
# 使用cargo創(chuàng)建項目
cargo new hello-cargo
cd hello-cargo
# 構(gòu)建
cargo build
# 運行
./target/debug/hello-cargo
# 輸出 Hello, world!

我們剛剛使用 cargo build 構(gòu)建了項目,并使用 ./target/debug/hello_cargo 運行了程序,也可以使用 cargo run 在一個命令中同時編譯并運行生成的可執(zhí)行文件。
Cargo 還提供了一個叫 cargo check 的命令。該命令快速檢查代碼確保其可以編譯,但并不產(chǎn)生可執(zhí)行文件。

  • 文件Cargo.toml內(nèi)容:
[package]
name = "hello-cargo"
version = "0.1.0"
edition = "2018"

# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html

[dependencies]

第一行,[package],是一個片段(section)標(biāo)題,表明下面的語句用來配置一個包。隨著我們在這個文件增加更多的信息,還將增加其他片段(section)。
接下來的四行設(shè)置了 Cargo 編譯程序所需的配置:項目的名稱、版本、作者以及要使用的 Rust 版本。Cargo 從環(huán)境中獲取你的名字和 email 信息,所以如果這些信息不正確,請修改并保存此文件。附錄 E 會介紹 edition 的值。
最后一行,[dependencies],是羅列項目依賴的片段的開始。在 Rust 中,代碼包被稱為 crates。這個項目并不需要其他的 crate。

  • 發(fā)布(release)構(gòu)建

當(dāng)項目最終準(zhǔn)備好發(fā)布時,可以使用 cargo build --release 來優(yōu)化編譯項目。這會在 target/release 而不是 target/debug 下生成可執(zhí)行文件。這些優(yōu)化可以讓 Rust 代碼運行的更快,不過啟用這些優(yōu)化也需要消耗更長的編譯時間。這也就是為什么會有兩種不同的配置:一種是為了開發(fā),你需要經(jīng)??焖僦匦聵?gòu)建;另一種是為用戶構(gòu)建最終程序,它們不會經(jīng)常重新構(gòu)建,并且希望程序運行得越快越好。如果你在測試代碼的運行時間,請確保運行 cargo build --release 并使用 target/release 下的可執(zhí)行文件進(jìn)行測試。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容