Mise en forme de code: pensez à utiliser les balises [ tcl ] et [ /tcl ] (sans les espaces bien sûr) autour de vos codes tcl afin d'avoir un meilleur rendu et une coloration syntaxique. x


If & Expr, c'est pareil o.O
#1
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
#2
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.
irc.zeolia.net - Offrez-moi un café
Merci de ne pas demander d'aide en MP
Away
#3
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.
Toute l'actualité de mes scripts ici     (dernière mise à jour le 22/04/2020)

Tout programme comporte au moins un bug et pourrait être raccourci d'au moins une instruction, de quoi l'on peut déduire que tout programme peut être réduit à une seule instruction qui ne fonctionne pas.
#4
CrazyCat Wrote: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.
#5
Ok, merci de l'info
irc.zeolia.net - Offrez-moi un café
Merci de ne pas demander d'aide en MP
Away
#6
Artix Wrote:- Qu'on peut executer des commandes via expr... gare aux scripts de calcul
Euuh ? Tu peux expliquer stp ?
#7
Quote:<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 "+"


Possibly Related Threads…
Thread Author Replies Views Last Post
  [Demande] Soucis avec expr aliasangelius 6 4,188 13/01/2017, 18:06
Last Post: aliasangelius
  Soucis au niveau de "expr" DaV34 4 3,407 29/02/2008, 14:43
Last Post: DaV34

Forum Jump:


Users browsing this thread: 1 Guest(s)