NAME¶
local - create an object local to a procedure
SYNOPSIS¶
itcl::local className objName ?
arg arg ...?
DESCRIPTION¶
The
local command creates an
[incr Tcl] object that is
local to the current call frame. When the call frame goes away, the object is
automatically deleted. This command is useful for creating objects that are
local to a procedure.
As a side effect, this command creates a variable named "itcl-local-
xxx", where
xxx is the name of the object that is created.
This variable detects when the call frame is destroyed and automatically
deletes the associated object.
EXAMPLE¶
In the following example, a simple "counter" object is used within the
procedure "test". The counter is created as a local object, so it is
automatically deleted each time the procedure exits. The
puts
statements included in the constructor/destructor show the object coming and
going as the procedure is called.
itcl::class counter {
private variable count 0
constructor {} {
puts "created: $this"
}
destructor {
puts "deleted: $this"
}
method bump {{by 1}} {
incr count $by
}
method get {} {
return $count
}
}
proc test {val} {
local counter x
for {set i 0} {$i < $val} {incr i} {
x bump
}
return [x get]
}
set result [test 5]
puts "test: $result"
set result [test 10]
puts "test: $result"
puts "objects: [itcl::find objects *]"
KEYWORDS¶
class, object, procedure