Rust utilise le type jamais (`!`) qui se convertit en n’importe quel type, permettant d’employer `return`, `break` ou `continue` dans des expressions variées.
On peut chaîner et comparer des expressions de type `()` ou `!`, comme des assertions, impressions ou affectations, grâce à la coercition de types.
La syntaxe des plages (`..`, `..=`) peut être combinée arbitrairement et implémente `Debug`, autorisant des chaînes de points ou des retours de plage dans les fonctions.
La déclaration d’`union` est un mot-clé faible, ce qui permet de l’utiliser comme nom de fonction ou d’identificateur ailleurs.
Il est possible de regrouper à l’infini les blocs `use` avec des accolades imbriquées pour réduire la verbosité des imports.
Rust accepte des identifiants en Unicode ou des mots-clés préfixés (`r#match`), ouvrant la porte à des noms de fonctions atypiques.
Les modules peuvent se réexporter eux-mêmes (module infini) pour créer une profondeur récursive illimitée.
Grâce à `Deref`, une structure peut se comporter comme un pointeur de fonction, permettant des appels en chaîne.
Le turbo fish (`::<>`) accepte des paramètres génériques explicitement vides, utilisables sur les types ou les méthodes.
Les macros de test (comme `matches!`) ou les opérateurs `!` faussement macros permettent de jouer sur les expressions et leur type de retour de façon détournée.
Get notified when new stories are published for "🇫🇷 Hacker News Français"