Je suis en train d'implémenter un analyseur syntaxique en Rust et l'espace blanc est un motif commun que je veux réutiliser dans match
modèles.
Ce code fonctionne :
let ch = ' ';
match ch {
' ' | '\n' | '\t' | '\r' => println!("whitespace"),
_ => println!("token"),
}
Cela deviendrait vraiment répétitif si je devais continuer à spécifier le modèle d'espacement à chaque fois. J'aimerais pouvoir le définir une fois et le réutiliser. Je veux faire quelque chose comme :
let whitespace = ' ' | '\n' | '\t' | '\r';
let ch = ' ';
match ch {
whitespace => println!("whitespace"),
_ => println!("token"),
}
Le compilateur n'aime pas le ws
affectation. Il interprète le |
comme une opération binaire au lieu de l'alternance.
Les modèles peuvent-ils être stockés dans des variables d'une manière ou d'une autre ? Existe-t-il un moyen plus efficace ou plus idiomatique de le faire ?