第一個程式與 Cargo
Cargo 是 Rust 的專案與套件管理工具,負責建立專案、下載相依套件、編譯、測試與執行。實務上你幾乎不會直接呼叫 rustc,而是透過 Cargo。本頁帶你建立第一個專案,並認識最常用的指令。
Hello, world!
建立新專案並執行:
cargo run 會先編譯,再執行,終端機會印出 Hello, world!。
專案結構
hello/
├── Cargo.toml # 專案設定與相依套件
├── Cargo.lock # 實際使用的套件版本(自動產生)
├── src/
│ └── main.rs # 程式進入點
└── target/ # 編譯產物(不要提交到 Git)
src/main.rs 的內容:
fn main()是程式進入點。println!結尾的!表示它是巨集(macro),不是一般函式。- 每個陳述式以分號
;結尾。
Cargo.toml 描述專案:
edition 是 Rust 的語言版本,每隔數年釋出一次,用來引入不相容的語法調整。Rust 2024 edition 自 Rust 1.85 起穩定,新專案預設就是它。
常用 Cargo 指令
| 指令 | 用途 |
|---|---|
cargo new 名稱 |
建立新專案 |
cargo run |
編譯並執行 |
cargo build |
只編譯(輸出在 target/debug/) |
cargo build --release |
開啟最佳化編譯,用於正式發佈 |
cargo check |
只檢查能否編譯,不產生執行檔,速度較快 |
cargo test |
執行測試 |
cargo add 套件名 |
加入相依套件 |
cargo fmt |
自動格式化程式碼 |
cargo clippy |
靜態檢查,提供改善建議 |
cargo doc --open |
產生並開啟文件 |
寫程式時多用 cargo check
Rust 編譯較花時間,只想確認有沒有語法或所有權錯誤時,用 cargo check 會快很多。
使用外部套件
Rust 的套件稱為 crate,公開發佈在 crates.io。例如要產生亂數,可以加入 rand:
Cargo 會把它寫進 Cargo.toml 的 [dependencies],下次編譯時自動下載。Cargo.lock 則記錄實際使用的版本,確保團隊成員與正式環境建置出相同結果。
推薦影音
建立你的第一個應用程式
簡述:微軟《Beginner's Series to Rust》第 5 集,示範建立並執行 Hello World,對應本頁前半段。
什麼是 Cargo
簡述:同系列第 6 集,說明 Cargo 的角色與基本用法,對應「常用 Cargo 指令」一節。
下一步:前往 基礎語法。