Translate

lunes, 3 de julio de 2023

Sobrecarga de funciones


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.
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));

}