local(n) [incr Tcl] local(n)
NAME
local - create an object local to a procedure
SYNOPSIS
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. 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: [info objects]"
KEYWORDS
class, object, procedure
itcl local(n)
|