summaryrefslogtreecommitdiffstats
path: root/doc/variable.n
blob: 3b742a941f13a06d86832166ac9760955ca0a27f (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
'\"
'\" Copyright (c) 1993-1997 Bell Labs Innovations for Lucent Technologies
'\" Copyright (c) 1997 Sun Microsystems, Inc.
'\"
'\" See the file "license.terms" for information on usage and redistribution
'\" of this file, and for a DISCLAIMER OF ALL WARRANTIES.
'\" 
'\" RCS: @(#) $Id: variable.n,v 1.2 1998/09/14 18:39:56 stanton Exp $
'\" 
.so man.macros
.TH variable n 8.0 Tcl "Tcl Built-In Commands"
.BS
'\" Note:  do not modify the .SH NAME line immediately below!
.SH NAME
variable \- create and initialize a namespace variable
.SH SYNOPSIS
\fBvariable \fR?\fIname value...\fR? \fIname \fR?\fIvalue\fR?
.BE

.SH DESCRIPTION
.PP
This command is normally used within a
\fBnamespace eval\fR command to create one or more variables
within a namespace.
Each variable \fIname\fR is initialized with \fIvalue\fR.
The \fIvalue\fR for the last variable is optional.
.PP
If a variable \fIname\fR does not exist, it is created.
In this case, if \fIvalue\fR is specified,
it is assigned to the newly created variable.
If no \fIvalue\fR is specified, the new variable is left undefined.
If the variable already exists,
it is set to \fIvalue\fR if \fIvalue\fR is specified
or left unchanged if no \fIvalue\fR is given.
Normally, \fIname\fR is unqualified
(does not include the names of any containing namespaces),
and the variable is created in the current namespace.
If \fIname\fR includes any namespace qualifiers,
the variable is created in the specified namespace.
.PP
If the \fBvariable\fR command is executed inside a Tcl procedure,
it creates local variables
linked to the corresponding namespace variables.
In this way the \fBvariable\fR command resembles the \fBglobal\fR command,
although the \fBglobal\fR command
only links to variables in the global namespace.
If any \fIvalue\fRs 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.
.PP
A \fIname\fR argument cannot reference an element within an array.
Instead, \fIname\fR should reference the entire array,
and the initialization \fIvalue\fR should be left off.
After the variable has been declared,
elements within the array can be set using ordinary
\fBset\fR or \fBarray\fR commands.

.SH "SEE ALSO"
global(n), namespace(n)

.SH KEYWORDS
global, namespace, procedure, variable
lumn6'>| | | | so that we no longer pass through Tcl_DStrings which have their own sets of problems when lengths overflow the int range. Now AUTUR and UpdateStringOfString share a common core routine. | | * | | | | | | | | | | | | Removed casts now unnecessary after type of stringPtr->allocated changed.dgp2009-02-111-5/+5 | | | | | | | | | | | | | | | | | * | | | | | | | | | | | | * generic/tclStringObj.c: Changed type of the 'allocated' fielddgp2009-02-112-4/+5 | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * generic/tclTestObj.c: of the String struct (and the TestString counterpart) from size_t to int since only int values are ever stored in it. | | * | | | | | | | | | | | | * generic/tclStringObj.c: Changed type of the 'allocated' fielddgp2009-02-113-3/+10 | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | of the String struct from size_t to int since only int values are ever stored in it. | | * | | | | | | | | | | | | - eliminate some unnessary type castsnijtmans2009-02-1013-167/+133 | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | - some internal const decorations - spacing | | * | | | | | | | | | | | | - eliminate some unnessary type castsnijtmans2009-02-10