Sobrecarga de Funções

Sobrecarga não é suportada:

  • Cada função tem uma única implementação:
    • Sempre tem um número fixo de parâmetros.
    • Sempre usa um único conjunto de tipos de parâmetros.
  • Valores padrão não são suportados:
    • Todos as chamadas têm o mesmo número de argumentos.
    • Às vezes macros são utilizadas como alternativa.

No entanto, os parâmetros da função podem ser tipos genéricos:

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

fn main() {
    println!("lance da moeda: {}", pick_one("cara", "coroa"));
    println!("prêmio em dinheiro: {}", pick_one(500, 1000));
}
  • Ao usar tipos genéricos, o Into<T> da biblioteca padrão pode fornecer um tipo de polimorfismo limitado nos tipos de argumento. Veremos mais detalhes em uma seção posterior.