logo
Free, unlimited AI code reviews that run on commit
git-lrc git-lrc GitHub Install Now We'd appreciate a star git-lrc - Free, unlimited AI code reviews that run on commit | Product Hunt git-lrc - Free, unlimited AI code reviews that run on commit | Product Hunt

variable - create and initialize a namespace variable

Description

       This  command  is  normally used within a namespaceeval command to create one or more variables within a
       namespace.  Each variable name is initialized with value.  The value for the last variable is optional.

       If a variable name does not exist, it is created.  In this case, if value is specified, it is assigned to
       the newly created variable.  If no value is specified, the  new  variable  is  left  undefined.   If  the
       variable already exists, it is set to value if value is specified or left unchanged if no value is given.
       Normally, name is unqualified (does not include the names of any containing namespaces), and the variable
       is  created in the current namespace.  If name includes any namespace qualifiers, the variable is created
       in the specified namespace.  If the variable is not defined, it will be visible to  the  namespacewhich
       command, but not to the infoexists command.

       If  the  variable  command  is  executed inside a Tcl procedure, it creates local variables linked to the
       corresponding namespace variables (and therefore these variables are listed by infovars.)  In  this  way
       the  variable  command  resembles the global command, although the global command resolves variable names
       with respect to the global namespace instead of the current namespace of the procedure.   If  any  values
       are  given,  they  are  used  to modify the values of the associated namespace variables.  If a namespace
       variable does not exist, it is created and optionally initialized.

       A name argument cannot reference an element within an array.  Instead, name should reference  the  entire
       array,  and  the initialization value should be left off.  After the variable has been declared, elements
       within the array can be set using ordinary set or array commands.

Examples

       Create a variable in a namespace:

              namespace eval foo {
                  variable bar 12345
              }

       Create an array in a namespace:

              namespace eval someNS {
                  variable someAry
                  array set someAry {
                      someName  someValue
                      otherName otherValue
                  }
              }

       Access variables in namespaces from a procedure:

              namespace eval foo {
                  proc spong {} {
                      # Variable in this namespace
                      variable bar
                      puts "bar is $bar"

                      # Variable in another namespace
                      variable ::someNS::someAry
                      parray someAry
                  }
              }

Keywords

       global, namespace, procedure, variable

Tcl                                                    8.0                                        variable(3tcl)

Name

       variable - create and initialize a namespace variable

See Also

global(3tcl), namespace(3tcl), upvar(3tcl)

Synopsis

variablenamevariable ?namevalue...?
________________________________________________________________________________________________________________

See Also