Est-il possible de déclarer une variable statique dans Tcl?
J'utilise une certaine fonction pour attraper les erreurs de commande inconnues, et je veux qu'il imprime un message d'erreur sur la première apparition d'une commande inconnue - donc je dois garder quelque chose comme une liste statique à l'intérieur du proc
. Est-ce possible?Variable statique dans Tcl
6
A
Répondre
4
Ou vous pouvez simplement utiliser une variable globale droite:
set varList {}
proc useCount {value} {
global varList ;
lappend varList $value
}
useCount One
useCount Two
puts $varList
2
Non, mais vous pouvez utiliser un global tableau (généralement des espaces de noms) indexé par le nom de proc par exemple:
namespace eval foo {
variable statics
array set statics {}
}
...
proc ::foo::bar args {
variable statics
upvar 0 statics([lindex [info level 0] 0]) myvar
# use myvar
}
2
Tcl ne ne supporte pas la variable statique. Au lieu d'utiliser une variable globale ou une variable à l'intérieur d'un espace de noms, vous pouvez également implémenter votre procédure en tant que méthode dans une classe (voir [incr tcl] ou snit). Si vous devez implémenter variable statique, le wiki Tcl a une page qui traitent de cette question: http://wiki.tcl.tk/1532
0
Comme je n'aime pas les variables globales (sauf si vous avez un petit script), je combiner des solutions de @kostix et @Jackson:
namespace eval foo {
variable varList {}
}
proc foo::useCount {value} {
variable varList
lappend varList $value
}
foo::useCount One
foo::useCount Two
puts $foo::varList
Questions connexes
- 1. tcl variable sql injection check
- 2. Limite de taille variable Tcl
- 3. Variable statique dans ObjectiveC
- 4. Variable statique dans asp.net
- 5. variable ne statique "cette" méthode statique dans
- 6. accès variable statique méthode statique
- 7. variable d'instance ou variable statique?
- 8. Appel Perl dans Tcl
- 9. Une variable statique essayant d'accéder à une autre variable statique
- 10. TCL: Concernant le fichier init.tcl dans TCL
- 11. C++ - Variable statique
- 12. Variable statique/membre
- 13. C++ variable statique
- 14. question Variable statique
- 15. Accès valeur variable statique
- 16. Global.asax.cs et variable statique
- 17. Variable statique tout chambouler
- 18. Modèle variable statique
- 19. Variable statique CComPtr
- 20. La variable globale Tcl ne semble pas changer dans ns2
- 21. variable à l'aide dans le tableau de Tcl
- 22. comment définir même valeur à variable multiple dans tcl
- 23. variable statique de verrouillage
- 24. lecture variable statique d'un
- 25. problème variable C statique
- 26. java variable non statique dans un contexte statique
- 27. Utiliser une variable statique dans une fonction statique
- 28. problème en utilisant la variable statique dans une fonction statique
- 29. variable statique avec multithread
- 30. Variable de méthode statique
Mise à jour: voir aussi http://wiki.tcl.tk/memoizing pour une idée générale – kostix