Rust no soporta la sobrecarga:
- Cada función tiene una sola implementación:
- Siempre toma un número fijo de parámetros.
- Siempre toma un único conjunto de tipos de parámetros.
- Los valores predeterminados no son compatibles:
- Todos los sitios de llamadas tienen el mismo número de argumentos.
- Las macros a veces se utilizan como alternativa.
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));
}