函式超載

Rust 不支援超載:

  • 每個函式都有單一實作項目:
    • 一律採用固定數量的參數。
    • 一律採用單組參數型別。
  • 不支援預設值:
    • 所有呼叫的引數數目都相同。
    • 有時系統會改用巨集。

不過,函式參數可能為泛型:

fn pick_one<T>(a: T, b: T) -> T {
    if std::process::id() % 2 == 0 { a } else { b }
}

fn main() {
    println!("coin toss: {}", pick_one("heads", "tails"));
    println!("cash prize: {}", pick_one(500, 1000));
}
  • 使用泛型時,標準程式庫的 Into<T> 可以為引數型別提供一種受限的多態性。我們會在後續章節中進一步說明。