函数重载
不支持重载:
- 每个函数都有单个实现:
- 总是接受固定数量的参数。
- 总是使用同样的一组参数类型。
- 不支持默认值:
- 所有的调用都有同样数量的实参。
- 有时会使用宏作为替代。
不过,函数参数可以是泛型:
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>
可以在参数类型上提供一种有限的多态。我们会在后面的章节看到更多细节。