Avatar ·

Comment implémenter des arguments de fonction par défaut en Rust ?

Bonjour, collègues ! Je suis débutant en Rust et je viens de Python, où on peut facilement écrire des fonctions avec des arguments par défaut :

def greet(name, greeting="Bonjour"):
    print(f"{greeting}, {name}!")

Maintenant, j'essaie de faire la même chose en Rust, mais le compilateur râle. Voici mon code :

fn greet(name: &str, greeting: &str = "Bonjour") {
    println!("{}, {}!", greeting, name);
}

Le compilateur donne une erreur : expected identifier, found `=`. Je comprends qu'il n'y a pas de syntaxe pour les arguments par défaut en Rust, mais comment résoudre ce problème ? J'ai besoin que la fonction puisse fonctionner avec un seul argument (alors le salut par défaut est "Bonjour") ou avec deux.

J'ai déjà essayé d'utiliser la surcharge de fonctions, mais Rust ne la supporte pas. J'ai essayé de faire deux fonctions avec des noms différents — ça marche, mais le code devient lourd. Y a-t-il une manière plus idiomatique ? Peut-être utiliser des structures ou des énumérations ? Ou existe-t-il