Communauté Eggdrop
If & Expr, c'est pareil o.O - Version imprimable

+- Communauté Eggdrop (https://forum.eggdrop.fr)
+-- Forum : Eggdrop et TCL (https://forum.eggdrop.fr/forumdisplay.php?fid=8)
+--- Forum : Scripts TCL (https://forum.eggdrop.fr/forumdisplay.php?fid=4)
+--- Sujet : If & Expr, c'est pareil o.O (/showthread.php?tid=511)



If & Expr, c'est pareil o.O - Artix - 03/09/2009

Bon, beaucoup l'aurons déjà remarqué, mais personnellement je viens juste de le voir et je suppose que d'autres personnes ne sont pas au courant, donc voici ce que j'ai "trouvé" :
Les conditions de if, elseif, while, etc, utilisent les memes expressions que expr !
Bon je sais, ca a l'air de rien vu comme ça mais ca signifie :
- Qu'on peut faire des calculs directement dans le if
- Qu'on peut utiliser les eq et autres, ainsi que des strings dans expr
- Qu'on peut executer des commandes via expr... gare aux scripts de calcul
- Que pour obtenir le resultat d'un test if, le passer dans expr c'est plus simple


RE: If & Expr, c'est pareil o.O - CrazyCat - 03/09/2009

Oui et non.
La règle première d'un if, lorsqu'il contient plusieurs conditions, est de quitter sur la première condition fausse, ce qui n'est pas forcément le cas de expr.


RE: If & Expr, c'est pareil o.O - MenzAgitat - 03/09/2009

De plus, avec la forme [expr a?b:c] (équivalent à si a alors b sinon c), tu ne peux pas mettre plusieurs commandes en b ou c.
Ca convient pour des conditions simples donnant une valeur comme retour mais ça ne remplace pas If.
J'ajoute aussi que malgré ce qu'on pourrait penser, un expr n'est pas plus rapide qu'un If pour faire ça.


RE: If & Expr, c'est pareil o.O - Merwin - 04/09/2009

CrazyCat a écrit :Oui et non.
La règle première d'un if, lorsqu'il contient plusieurs conditions, est de quitter sur la première condition fausse, ce qui n'est pas forcément le cas de expr.

Si bien sur,

set result [expr {($a == $b) && ($b == $c)}]

Si $a == $b est faux alors expr ne fera pas plus de calcul que nécéssaire $result = false.


RE: If & Expr, c'est pareil o.O - CrazyCat - 04/09/2009

Ok, merci de l'info


RE: If & Expr, c'est pareil o.O - NimaG` - 05/09/2009

Artix a écrit :- Qu'on peut executer des commandes via expr... gare aux scripts de calcul
Euuh ? Tu peux expliquer stp ?


RE: If & Expr, c'est pareil o.O - Artix - 06/09/2009

Citation :<Artix> .tcl set varartix {[putquick "PRIVMSG #chan :yep"]}
<Artix> .tcl expr $varartix + 2
<Eggdrop> yep
<Eggdrop> Tcl: can't use empty string as operand of "+"