Sobrecarga de funciones

No se admite la sobrecarga:

  • Cada función tiene una única implementación:
    • Siempre se utiliza un número fijo de parámetros.
    • Siempre se utiliza un único conjunto de tipos de parámetros.
  • No se admiten valores predeterminados:
    • Todos los sitios de llamada tienen el mismo número de argumentos.
    • A veces, se utilizan macros como alternativa.

Sin embargo, los parámetros de función pueden ser genéricos:

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));
}
  • Cuando se utilizan genéricos, el Into<T> de la biblioteca estándar puede proporcionar una especie de polimorfismo limitado en los tipos de argumentos. Veremos más información al respecto en una sección posterior.