projman/hlp/fr/tcl/proc.htm

21 lines
3.7 KiB
HTML
Raw Normal View History

2015-10-19 13:27:31 +03:00
<HTML><HEAD>
<BASEFONT FACE="Times New Roman" SIZE="2" COLOR="#000000">
</HEAD>
<BODY>
<div><H3><b>proc&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Commandes Internes Tcl</b></H3></div>
<HR ALIGN="center">
<div><b>NOM</b></div><br>
<div ALIGN="LEFT" style="margin-left: 51px;">proc - Cr<43>e une fonction Tcl
</div><br>
<div><b>SYNTAXE</b></div><br>
<div ALIGN="LEFT" style="margin-left: 51px;"><b>proc </b><i>name args body</i>
</div><br>
<div><b>DESCRIPTION</b></div><br>
<div ALIGN="LEFT" style="margin-left: 51px;">La commande <b>proc</b> cr<63>e une nouvelle fonction Tcl nomm<6D>e <i>name</i>, rempla<6C>ant toute commande ou fonction existante de ce nom. Chaque fois que la nouvelle commande est appel<65>e, le contenu de <i>body</i> sera ex<65>cut<75> par l'interpr<70>teur Tcl. Normalement, <i>name</i> est non qualifi<66> (n'inclut pas les noms des namespaces contenant), et la nouvelle fonction est cr<63><72>e dans le namespace courant. Si <i>name</i> inclut un quelconque qualificateurs namespace, la fonction est cr<63><72>e dans le namespace sp<73>cifi<66> . <i>Args</i> sp<73>cifie les arguments formels <20> la fonction. Ils consiste d'une liste, qui peur <20>tre vide, dont chaque <20>l<EFBFBD>ments sp<73>cifie un argument. Chaque sp<73>cificateur d'argument est aussi une liste avec soit un ou deux champs. S'il y a seul champ dans le sp<73>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. </div>
<div ALIGN="LEFT" style="margin-left: 51px;">Quand <i>name</i> est appel<65>e une variable locale sera cr<63><72>e pour chacun des arguments formel <20> la fonction; leur valeur sera la valeur de l'argument correspondant dans la commande appel<65>e ou la valeur par d<>faut de l'argument. Les arguments avec une valeur par d<>faut n'ont pas besoin <20>tre sp<73>cifi<66>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<70>mentaires. Il y a un cas sp<73>cial pour permettre les fonctions avec un nombre variable d'arguments. Si le dernier argument a le nom <b>args</b>, alors un appel <20> la fonction peut contenir plus d'arguments que la fonction en a. Dans ce cas, tous les arguments <20> partir de celui qui serait assign<67> <20> <b>args</b> sont combin<69>s en une liste (comme si la commande <A HREF="132.htm"><b>list</b></A> avait <20>t<EFBFBD> utilis<69>e); ces valeurs combin<69>es sont assign<67>es <20> la variable locale <b>args</b>. </div>
<div ALIGN="LEFT" style="margin-left: 51px;">Quand <i>body</i> est ex<65>cut<75>,les noms de variables normalement se ref<65>rent aux variables locales, qui sont cr<63><72>es automatiquement quand r<>f<EFBFBD>renc<6E>es et effac<61>es quand la fonction retourne. Une variable locale est automatiquement cr<63><72>e pour chacun de ses arguments de fonction. Les variables globales peuvent seulement <20>tre acc<63>d<EFBFBD>e en appelant la commande <A HREF="120.htm"><b>global</b></A> ou la commande<A HREF="178.htm"><b> upvar</b></A>. Les variables namespace peuvent seulement <20>tre acc<63>d<EFBFBD>es en appelant la commande <A HREF="179.htm"><b>variable</b></A> ou la commande<A HREF="178.htm"><b> upvar</b></A>. </div>
<div ALIGN="LEFT" style="margin-left: 51px;">La commande <b>proc</b> retourne une cha<68>ne vide. Quand une fonction est appel<65>e, la valeur de retour de la fonction est la valeur sp<73>cifi<66>e dans une instruction<A HREF="157.htm"><b> return</b></A>. Si la fonction n'ex<65>cute pas un <A><b>return</b></A> explicite , alors sa valeur de retour est la valeur de la derni<6E>re commande ex<65>cut<75>e dans le corps de la fonction. Si une erreur se produit pendant l'ex<65>cution du corps la fonction, alors la fonction renverra cette m<>me erreur. </div>
<br>
<br><div ALIGN="CENTER"><A HREF="index.htm"><b>Index</b></A>&nbsp;&nbsp;<A HREF="146.htm"><b>Pr<EFBFBD>c<EFBFBD>dent</b></A>&nbsp;&nbsp;<A HREF="148.htm"><b>Suivant</b></A></div>
</BODY></HTML>