proc Commandes Internes Tcl
NOM
proc - Crée une fonction Tcl
SYNTAXE
proc name args body
DESCRIPTION
La commande proc crée une nouvelle fonction Tcl nommée name, remplaçant toute commande ou fonction existante de ce nom. Chaque fois que la nouvelle commande est appelée, le contenu de body sera exécuté par l'interpréteur Tcl. Normalement, name est non qualifié (n'inclut pas les noms des namespaces contenant), et la nouvelle fonction est créée dans le namespace courant. Si name inclut un quelconque qualificateurs namespace, la fonction est créée dans le namespace spécifié . Args spécifie les arguments formels à la fonction. Ils consiste d'une liste, qui peur être vide, dont chaque éléments spécifie un argument. Chaque spécificateur d'argument est aussi une liste avec soit un ou deux champs. S'il y a seul champ dans le spécificateur alors c'est le nom de l'argument; s'il y a deux champs, alors le premier est le nom de l'argument et le second est sa valeur par défaut.
Quand
name est appelée une variable locale sera créée pour chacun des arguments formel à la fonction; leur valeur sera la valeur de l'argument correspondant dans la commande appelée ou la valeur par défaut de l'argument. Les arguments avec une valeur par défaut n'ont pas besoin être spécifiés dans un appel de fonction. Néanmoins, il doit y avoir assez d'arguments pour tous les arguments qui n'ont pas de valeur par défaut, et il ne doit pas y avoir d'arguments supplémentaires. Il y a un cas spécial pour permettre les fonctions avec un nombre variable d'arguments. Si le dernier argument a le nom
args, alors un appel à la fonction peut contenir plus d'arguments que la fonction en a. Dans ce cas, tous les arguments à partir de celui qui serait assigné à
args sont combinés en une liste (comme si la commande
list avait été utilisée); ces valeurs combinées sont assignées à la variable locale
args.
Quand
body est exécuté,les noms de variables normalement se refèrent aux variables locales, qui sont créées automatiquement quand référencées et effacées quand la fonction retourne. Une variable locale est automatiquement créée pour chacun de ses arguments de fonction. Les variables globales peuvent seulement être accédée en appelant la commande
global ou la commande
upvar. Les variables namespace peuvent seulement être accédées en appelant la commande
variable ou la commande
upvar.
La commande
proc retourne une chaîne vide. Quand une fonction est appelée, la valeur de retour de la fonction est la valeur spécifiée dans une instruction
return. Si la fonction n'exécute pas un
return explicite , alors sa valeur de retour est la valeur de la dernière commande exécutée dans le corps de la fonction. Si une erreur se produit pendant l'exécution du corps la fonction, alors la fonction renverra cette même erreur.