web-dev-qa-db-fra.com

Comment ne rien faire sur le "cas de repos" lors de la correspondance d'une chaîne?

J'ai une chaîne où je veux vérifier s'il s'agit d'un point-virgule, d'une virgule ou d'un deux-points. Si ce n'est pas un de ceux-là, je ne veux rien faire:

match token.as_ref() {
    ";" => semicolons += 1,
    "," => commas += 1,
    ":" => colons += 1,
     _ => println!(""),
}

Cela fonctionne, mais je ne veux pas vraiment imprimer un tas de lignes vides (car beaucoup de jetons ne correspondent pas à ces critères).

Quelle serait la meilleure façon de résoudre ce problème?

21
kycklingsylt
let some_u8_value = 0u8;
match some_u8_value {
    1 => println!("one"),
    3 => println!("three"),
    5 => println!("five"),
    7 => println!("seven"),
    _ => (),
}

Le () est juste la valeur unitaire, donc rien ne se passera dans le _ case. Par conséquent, nous pouvons dire que nous ne voulons rien faire pour toutes les valeurs possibles que nous ne listons pas avant le _ espace réservé.

Vous pouvez également utiliser l'expression de bloc vide {}.

18
Alexey Romanov