巨集
巨集會在編譯期間展開為 Rust 程式碼,並可接受可變數量的引數。我們可透過結尾的 !
來辨別巨集。Rust 標準程式庫包含各式實用巨集。
println!(format, ..)
prints a line to standard output, applying formatting described instd::fmt
.format!(format, ..)
的運作方式與println!
類似,但會以字串形式傳回結果。dbg!(expression)
會記錄並傳回運算式的值。todo!()
可將一小段程式碼標示為尚未實作,但執行後會發生恐慌。unavailable!()
可將一小段程式碼標示為無法存取,但執行後會發生恐慌。
fn factorial(n: u32) -> u32 { let mut product = 1; for i in 1..=n { product *= dbg!(i); } product } fn fizzbuzz(n: u32) -> u32 { todo!() } fn main() { let n = 4; println!("{n}! = {}", factorial(n)); }
This slide should take about 2 minutes.
本節的重點在於,上述的便利性不僅常見,而且確實存在,學員需瞭解如何運用。至於為何將便利性定義為巨集,以及巨集展開後會變成什麼內容,則沒有那麼重要。
本課程不會探討如何定義巨集,但後續章節將說明衍生巨集的用法。