Asserts that the [param condition] is [code]true[/code]. If the [param condition] is [code]false[/code], an error is generated. When running from the editor, the running project will also be paused until you resume it. This can be used as a stronger form of [method @GlobalScope.push_error] for reporting errors to project developers or add-on users. An optional [param message] can be shown in addition to the generic "Assertion failed" message. You can use this to provide additional details about why the assertion failed. [b]Warning:[/b] For performance reasons, the code inside [method assert] is only executed in debug builds or when running the project from the editor. Don't include code that has side effects in an [method assert] call. Otherwise, the project will behave differently when exported in release mode. [codeblock] # Imagine we always want speed to be between 0 and 20. var speed = -10 assert(speed < 20) # True, the program will continue. assert(speed >= 0) # False, the program will stop. assert(speed >= 0 and speed < 20) # You can also combine the two conditional statements in one check. assert(speed < 20, "the speed limit is 20") # Show a message. [/codeblock] [b]Note:[/b] [method assert] is a keyword, not a function. So you cannot access it as a [Callable] or use it inside expressions.
Vérifie que la [param condition] est vraie ([code]true[/code]). Si la [param condition] est fausse ([code]false[/code]), une erreur est générée. Si le programme est lancé via l'éditeur, son exécution sera aussi interrompue jusqu'à ce que vous le redémarriez. Cela peut être utilisé comme une alternative plus radicale à [method @GlobalScope.push_error] pour signaler des erreurs aux développeurs de projets ou utilisateurs de plugins. Un [param message] facultatif peut être affiché en plus du message générique "Assertion failed". Vous pouvez l'utiliser pour fournir des détails supplémentaires sur la raison de l'échec de l'assertion. [b]Attention :[/b] Par souci de performance, le code inclus dans [method assert] n'est exécuté que dans les builds de débogage, ou quand vous lancez votre projet depuis l'éditeur. N'incluez pas de code qui modifie l'état du script dans un appel à [method assert]. Sinon, votre projet aura un fonctionnement différent une fois exporté pour la production (release build). [codeblock] # Imaginez que nous voulons une vitesse toujours comprise entre 0 et 20. var speed = -10 assert(speed < 20) # Vrai, le programme continue. assert(speed >= 0) # Faux, le programme s'interrompt. assert(speed >= 0 and speed < 20) # Vous pouvez aussi combiner les deux conditions en une seule vérification. assert(speed < 20, "speed = %f, mais la limite de vitesse est 20" % speed) # Affiche un message avec de plus amples détails. [/codeblock]
An optional [param message] can be shown in addition to the generic "Assertion failed" message. You can use this to provide additional details about why the assertion failed.
[b]Warning:[/b] For performance reasons, the code inside [method assert] is only executed in debug builds or when running the project from the editor. Don't include code that has side effects in an [method assert] call. Otherwise, the project will behave differently when exported in release mode.
[codeblock]
# Imagine we always want speed to be between 0 and 20.
var speed = -10
assert(speed < 20) # True, the program will continue.
assert(speed >= 0) # False, the program will stop.
assert(speed >= 0 and speed < 20) # You can also combine the two conditional statements in one check.
assert(speed < 20, "the speed limit is 20") # Show a message.
[/codeblock]
[b]Note:[/b] [method assert] is a keyword, not a function. So you cannot access it as a [Callable] or use it inside expressions.
Un [param message] facultatif peut être affiché en plus du message générique "Assertion failed". Vous pouvez l'utiliser pour fournir des détails supplémentaires sur la raison de l'échec de l'assertion.
[b]Attention :[/b] Par souci de performance, le code inclus dans [method assert] n'est exécuté que dans les builds de débogage, ou quand vous lancez votre projet depuis l'éditeur. N'incluez pas de code qui modifie l'état du script dans un appel à [method assert]. Sinon, votre projet aura un fonctionnement différent une fois exporté pour la production (release build).
[codeblock]
# Imaginez que nous voulons une vitesse toujours comprise entre 0 et 20.
var speed = -10
assert(speed < 20) # Vrai, le programme continue.
assert(speed >= 0) # Faux, le programme s'interrompt.
assert(speed >= 0 and speed < 20) # Vous pouvez aussi combiner les deux conditions en une seule vérification.
assert(speed < 20, "speed = %f, mais la limite de vitesse est 20" % speed) # Affiche un message avec de plus amples détails.
[/codeblock]