Comment faire correspondre une String avec des littéraux de chaîne en Rust via match ?
Bonjour à tous ! Je viens de commencer à apprendre Rust et j'ai rencontré un problème en utilisant match pour comparer une String. J'ai une variable de type String, et je veux vérifier si elle est égale à un littéral de chaîne. Par exemple, j'écris un analyseur de commandes simple :
```rust
fn main() {
let command = String::from("start");
match command {
"start" => println!("Démarrage !"),
"stop" => println!("Arrêt !"),
_ => println!("Commande inconnue"),
}
}
```
Mais le compilateur donne une erreur :
```
error[E0308]: mismatched types
expected struct `String`, found `&str`
```
Je comprends que String et &str sont des types différents, mais comment écrire correctement le match ? J'ai essayé d'utiliser as_str(), mais je ne suis pas sûr que ce soit la meilleure méthode. J'ai aussi entendu dire qu'on pouvait convertir les littéraux en String, mais cela semble inefficace. Pouvez-vous m'indiquer comment faire correspondre correctement une String avec des littéraux de chaîne en Rust ? Existe-t-il une manière idiomatique ou des meilleures pratiques ? Merci !