comment déclarer une variable à l'échelle mondiale qui est utilisé uniquement dans les proc
je vais avoir un code suivant:
proc testList {setupFile ""} {
if {$setupFile == ""} {
set setupFile location
}
}
proc run {} {
puts "$setupFile"
}
J'obtiens une erreur de syntaxe. Je sais que si je déclare le setupFile variable en dehors de la proc je.e dans le proc principal alors je peux les ajouter à l'espace de noms de dire ::65WL::setupFile global, mais pas de trouver comment faire si une variable est définie dans le proc.
OriginalL'auteur Nitesh | 2012-04-16
Vous devez vous connecter pour publier un commentaire.
Tcl variables qui ne sont pas locales à une procédure spécifique d'exécuter besoin d'être lié à un espace de noms; l'espace de noms peut être l'espace de noms global (il y a une commande spéciale pour ça) mais n'a pas besoin de l'être. Ainsi, pour avoir une variable qui est partagée entre les deux procédures, vous devez lui donner un nom exposé:
Maintenant, c'est pour le partage d'une variable complète. Il y a d'autres alternatives à condition que vous ne souhaitez partager une valeur. Par exemple, ces deux possibilités:
Il y a plus d'options avec Tcl 8.6, mais qui est toujours en version bêta.
OriginalL'auteur Donal Fellows
Vous pouvez vous référer à l'espace de noms global avec
::
.OriginalL'auteur glenn jackman
vous pouvez utiliser uplevel, upvar et/ou mondial
ou
la première est privilégiée.
OriginalL'auteur Pasquale