Eggdrop & Tcl

Base de connaissances eggdrop et tcl

Outils pour utilisateurs

Outils du site


tcl:proc

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentesRévision précédente
tcl:proc [2023/10/13 11:08] CrazyCattcl:proc [2023/10/13 11:08] (Version actuelle) – [Description] CrazyCat
Ligne 4: Ligne 4:
 <code tcl>proc name args body</code> <code tcl>proc name args body</code>
 ===== Description ===== ===== 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 [[:tcl:namespace]]s contenant), et la nouvelle fonction est créée dans le namespace courant. Si //name// inclut un quelconque quantificateurs namespace, la fonction est créée dans le namespace spécifié . [[:faq:args]] spécifie les arguments formels à la fonction. Ils consiste d'une liste, qui peut ê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.+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 [[:tcl:namespace]]s contenant), et la nouvelle fonction est créée dans le namespace courant. Si //name// inclut un quelconque quantificateurs namespace, la fonction est créée dans le namespace spécifié. [[:faq:args]] spécifie les arguments formels à la fonction. Ils consiste d'une liste, qui peut ê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 //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.
tcl/proc.1697195303.txt.gz · Dernière modification : 2023/10/13 11:08 de CrazyCat