Chapter 1

Rust 基礎

安裝 Rust

安裝

curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh

更新

rustup update

VSCode 安裝 Rust 插件

  1. rust-analyzer
  2. CodeLLDB

Hello World(使用 rustc)

fn main() {
    println!("Hello, world!");
}
rutstc src/main.rs

會產生一個 mainmain.exe 執行檔和一個 main.pdb 除錯輔助資訊檔

建立專案(使用 cargo)

  • 使用 cargo 建立專案
cargo new hello_world
  • 建置專案,會產生一個 target 資料夾
cd hello_world
cargo build
  • 執行專案
cargo run
cargo run -q
  • 清除專案
cargo clean
  • 新增套件
cargo add <???>

變數與型別

變數宣告

let <變數名稱>: <型別> = <值>;

型別預設不可變(immutable),若要變更變數值,需加上 mut 關鍵字。

let mut <變數名稱>: <型別> = <值>;

使用 const 取代 let 宣告常數(constant)。 通常用大寫字(Uppercase)母命名。

常數會在編譯期間被賦值,且一定要指定型別。

fn print_type_of<T>(_: &T) {
    println!("{}", std::any::type_name::<T>())
}

fn main() {
    let x1 = 100;
    println!("{x1}");
    println!("x1={x1}");

    let x2 = 200;
    println!("x2={x2}");
    println!("x2={x2:?}");

    let x3 = "300";
    println!("x3={x3}");
    println!("x3={x3:?}"); // 輸出時額外顯示字串引號

    print_type_of(&x1);

    let mut x4 = 400; // 可變
    println!("x4={x4}");
    x4 = 401;
    println!("x4={x4}");

    let mut x1 = x1; // 重新改成可變
    x1 += 1;
    println!("x1={x1}");

    let x4 = x4; // 重新改成不可變
    println!("x4={x4}");

    const YEAR: i32 = 2024; // 常數
    println!("{YEAR}");
}