Eggdrop & Tcl

Base de connaissances eggdrop et tcl

Outils pour utilisateurs

Outils du site


tcl:expr

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentesRévision précédente
Prochaine révision
Révision précédente
tcl:expr [2023/10/11 12:39] – [Opérandes] CrazyCattcl:expr [2023/10/11 12:42] (Version actuelle) – [Opérateurs] CrazyCat
Ligne 20: Ligne 20:
 ==== Opérateurs ==== ==== Opérateurs ====
 Les opérateurs valides sont listés ci-dessous, groupés en ordre de préséance décroissant: Les opérateurs valides sont listés ci-dessous, groupés en ordre de préséance décroissant:
-  * <kbd>- + ~ !</kbd> Moins unaire, plus unaire, NOT bit à bit, NOT logique. Aucun de ces opérateurs ne peut être appliqué aux opérandes chaîne, et NOT bit à bit peut seulement être appliqué aux entiers. +  * `- + ~ !Moins unaire, plus unitaire, NOT bit à bit, NOT logique. Aucun de ces opérateurs ne peut être appliqué aux opérandes chaîne, et NOT bit à bit peut seulement être appliqué aux entiers. 
-  * <kbd>* / %</kbd> Multiplication, division, modulo. Aucun de ces opérandes ne peut être appliqué aux opérandes chaîne, et modulo peut être appliqué seulement aux entiers. modulo Modulo aura toujours le même signe que le diviseur et une valeur absolue inférieure au diviseur. +  * `* / %Multiplication, division, modulo. Aucun de ces opérandes ne peut être appliqué aux opérandes chaîne, et modulo peut être appliqué seulement aux entiers. modulo Modulo aura toujours le même signe que le diviseur et une valeur absolue inférieure au diviseur. 
-  * <kbd>+ -</kbd> Addition et soustraction. Valides pour tout opérande numérique. +  * `+ -Addition et soustraction. Valides pour tout opérande numérique. 
-  * <kbd><< >></kbd> Décalage à gauche et à droite. Valides seulement pour les opérandes entiers. Un décalage à droite propage toujours le bit de signe. +  * `<< >>Décalage à gauche et à droite. Valides seulement pour les opérandes entiers. Un décalage à droite propage toujours le bit de signe. 
-  * <kbd>< > <= >=</kbd> Booléens inférieur à, supérieur à, inférieur à ou égal, et supérieur à ou égal. Chaque opérateur donne 1 si la condition est vraie, 0 autrement. Ces opérateurs peuvent être appliqués aux chaînes aussi bien qu'aux opérandes numériques, dans le cas des chaînes, une comparaison est utilisée. +  * `< > <= >=Booléens inférieur à, supérieur à, inférieur à ou égal, et supérieur à ou égal. Chaque opérateur donne 1 si la condition est vraie, 0 autrement. Ces opérateurs peuvent être appliqués aux chaînes aussi bien qu'aux opérandes numériques, dans le cas des chaînes, une comparaison est utilisée. 
-  * <kbd>== !=</kbd> Booléen égal et différent. Chaque opérateur produit un zéro/un résultat. Valides pour tout types d'opérande. +  * `== !=Booléen égal et différent. Chaque opérateur produit un zéro/un résultat. Valides pour tout types d'opérande. 
-  * <kbd>&</kbd> ET Bit à bit. Valide pour des opérandes entiers seulement. +  * `&ET Bit à bit. Valide pour des opérandes entiers seulement. 
-  * <kbd>^</kbd> OU exclusif Bit à bit. Valide pour des opérandes entiers seulement. +  * `^OU exclusif Bit à bit. Valide pour des opérandes entiers seulement. 
-  * <kbd>|</kbd> OU Bit à bit. Valide pour des opérandes entiers seulement. +  * `|OU Bit à bit. Valide pour des opérandes entiers seulement. 
-  * <kbd>&&</kbd> ET logique. Donne 1 si les deux opérandes sont différent de zéro, 0 autrement. Valide seulement pour pour les opérandes booléens et numériques (entiers ou flottants). +  * `&&ET logique. Donne 1 si les deux opérandes sont différent de zéro, 0 autrement. Valide seulement pour pour les opérandes booléens et numériques (entiers ou flottants). 
-  * <kbd>||</kbd> OU logique. Donne 0 si les deux opérandes sont zéro, 1 autrement. Valide seulement pour opérandes booléens et numériques (entiers ou flottants). +  * `||OU logique. Donne 0 si les deux opérandes sont zéro, 1 autrement. Valide seulement pour opérandes booléens et numériques (entiers ou flottants). 
-  * <kbd>x?y:z</kbd> If-then-else, comme en C. Si x est évalué différent de zéro, alors le résultat est la valeur de y. Autrement le résultat est la valeur de z. L'opérande x doit avoir une valeur numérique.+  * `x?y:zIf-then-else, comme en C. Si x est évalué différent de zéro, alors le résultat est la valeur de y. Autrement le résultat est la valeur de z. L'opérande x doit avoir une valeur numérique.
  
 Voir le manuel C pour plus de détails sur les résultats produits par chaque opérateur. Tous les opérateurs binaire sont groupés de gauche à droite à l'intérieur d'un même niveau de préséance. Par exemple, la commande `expr 4*2 < 7` retourne 0. Voir le manuel C pour plus de détails sur les résultats produits par chaque opérateur. Tous les opérateurs binaire sont groupés de gauche à droite à l'intérieur d'un même niveau de préséance. Par exemple, la commande `expr 4*2 < 7` retourne 0.
  
-Les opérateurs &&, ||, et ?: ont une "évaluation paresseuse", juste comme en C, ce qui signifie que ces opérandes ne ont pas évalués s'ils ne sont pas nécessaires pour déterminer le résultat. Par exemple, dans la commande `expr {$v ? [[a]] : [[b]]}` seulement un des [a] ou [b] sera évalué, dépendant de la valeur de $v. Notez, néanmoins, que ceci est seulement vrai si l'expression entière est entourée d'accolades; autrement l'analyseur Tcl évaluera [a] et [b] avant d'appeler la commande expr.+Les opérateurs &&, ||, et ?: ont une "évaluation paresseuse", juste comme en C, ce qui signifie que ces opérandes ne ont pas évalués s'ils ne sont pas nécessaires pour déterminer le résultat. Par exemple, dans la commande `expr {$v ? <nowiki>[[a]] : [[b]]</nowiki>}` seulement un des [a] ou [b] sera évalué, dépendant de la valeur de $v. Notez, néanmoins, que ceci est seulement vrai si l'expression entière est entourée d'accolades; autrement l'analyseur Tcl évaluera [a] et [b] avant d'appeler la commande expr.
 ==== Fonctions mathématiques ==== ==== Fonctions mathématiques ====
 Tcl supporte les fonctions mathématiques suivantes dans les expressions : Tcl supporte les fonctions mathématiques suivantes dans les expressions :
tcl/expr.1697027942.txt.gz · Dernière modification : 2023/10/11 12:39 de CrazyCat