Como implementar argumentos de função padrão em Rust?
Olá, colegas! Sou novo em Rust e estou migrando do Python, onde é fácil escrever funções com argumentos padrão:
def greet(name, greeting="Olá"):
print(f"{greeting}, {name}!")
Agora estou tentando fazer o mesmo em Rust, mas o compilador reclama. Aqui está meu código:
fn greet(name: &str, greeting: &str = "Olá") {
println!("{}, {}!", greeting, name);
}
O compilador dá o erro: expected identifier, found `=`. Entendo que Rust não tem sintaxe para argumentos padrão, mas como resolver esse problema? Preciso que a função funcione tanto com um argumento (então saudação padrão "Olá") quanto com dois.
Já tentei usar sobrecarga de funções, mas Rust não suporta isso. Tentei fazer duas funções com nomes diferentes — funciona, mas o código fica volumoso. Existe uma maneira mais idiomática? Talvez usar structs ou enums? Ou existe