local(n) [incr Tcl] local(n)
__________________________________________________________________________________________________________________________________________________
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 auto-
matically 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 vari-
able 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
itcl local(n)