Section courante

A propos

Section administrative du site

assert

Assertion
Rust

Syntaxe

macro_rules! assert {
   ($cond:expr $(,)?) => { ... };
   ($cond:expr, $($arg:tt)+) => { ... };
}

Description

Cette macro permet de vérifier qu'une expression booléenne est vraie à l'exécution, et déclenche une panique si ce n'est pas le cas.

Remarques

Utilisations

Les assertions sont toujours vérifiées dans les versions de débogage et de publication, et ne peuvent pas être désactivées. Consultez debug_assert! pour connaître les assertions désactivées par défaut dans les versions de publication.

Le code non sécurisé peut s'appuyer sur assert! pour appliquer des invariants d'exécution dont la violation peut entraîner une insécurité.

D'autres cas d'utilisation d'assert! incluent le test et l'application d'invariants d'exécution dans du code sécurisé (dont la violation ne peut entraîner une insécurité).

Messages personnalisés

Cette macro possède une seconde forme, où un message d'alerte personnalisé peut être fourni avec ou sans paramètres de formatage. Consultez std::fmt pour la syntaxe de cette forme. Les expressions utilisées comme arguments de formatage ne seront évaluées qu'en cas d'échec de l'assertion.

Exemples

  1. // le message de panique pour ces assertions est la valeur stringifiée de l'expression donnée.
  2. assert!(true);
  3.  
  4. fn some_computation() -> bool { true } // une fonction très simple
  5.  
  6. assert!(some_computation());
  7.  
  8. // affirmer avec un message personnalisé
  9. let x = true;
  10. assert!(x, "x n'était pas vrai !");
  11.  
  12. let a = 3; let b = 27;
  13. assert!(a + b == 30, "a = {}, b = {}", a, b);


Dernière mise à jour : Mardi, le 5 Août 2025