從 “Hello World” 開始#

學習一門新語言,最經典的起點就是輸出 “Hello World”。 Rust 的 Hello World 程式碼如下:

1
2
3
fn main() {
    println!("Hello, World!");
}

執行後,螢幕會顯示:

Hello, World!

1. 關鍵字(Keywords)#

關鍵字 是 Rust 語言中具有特殊意義的保留字,不能當作變數名稱使用。 fn 就是一個關鍵字,用來宣告函數。


2. 入口點(Entry Point)#

1
2
3
fn main() {
    // 程式從這裡開始執行
}

fn main() 宣告了一個名為 main 的函數,{} 包住函數的主體。 main 函數是每個 Rust 程式的 入口點 ,程式執行時固定從這裡開始。


3. 巨集(Macro)#

1
println!("Hello, World!");

這行程式碼可以拆成幾個部分來看:

  • println:巨集的名稱。
  • !:驚嘆號表示這是一個 巨集(Macro) ,而不是普通函數。巨集在編譯階段展開,可以接受不固定數量的參數,這是普通函數做不到的。
  • ("Hello, World!"):呼叫巨集並傳入參數,這裡傳入的是字串 "Hello, World!"
  • ;:陳述式結尾的分號。

println! 的作用是將傳入的字串輸出到標準輸出(螢幕),並在結尾自動換行。 除了直接輸出字串,println! 也支援格式化輸出,以 {} 作為佔位符填入變數值,詳細說明請參考 CH02:格式化輸出


4. 字串字面值(String Literal)#

"Hello, World!" 是一個 字串字面值 ,以雙引號 " 包住。 Rust 中的字串字面值型別為 &str,直接儲存在程式的唯讀記憶體區段。


5. 編譯與執行#

Rust 是 編譯型語言 ,程式碼必須先經過 rustc 編譯器編譯成執行檔,才能執行。

1
2
3
4
5
6
7
8
# 編譯
rustc main.rs

# 執行(Linux / macOS)
./main

# 執行(Windows)
.\main.exe

實際開發時通常使用 Cargo (Rust 的套件管理與建構工具)來管理專案:

1
2
3
4
5
6
# 建立新專案
cargo new hello_world
cd hello_world

# 編譯並執行
cargo run

Reference#

https://doc.rust-lang.org/book/ch01-02-hello-world.html