локальный
Имя
itcl::local — создание объекта, локального для процедурыСинопсис
itcl::local className objName ?arg arg ...?Описание
Команда local создаёт объект [incr Tcl], локальный для текущей области вызова. При исчезновении области вызова объект автоматически удаляется. Эта команда полезна для создания объектов, локальных для процедуры.В качестве побочного эффекта, эта команда создаёт переменную с именем "itcl-local-xxx", где xxx — имя созданного объекта. Эта переменная обнаруживает уничтожение области вызова и автоматически удаляет связанный объект.
Пример
В следующем примере используется простой объект «счётчик» внутри процедуры «test». Счётчик создаётся как локальный объект, поэтому он автоматически удаляется каждый раз при выходе из процедуры. Отображения puts, включённые в конструктор/деструктор, показывают появление и исчезновение объекта при вызове процедуры.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 *]"
Licensed under Tcl/Tk terms
https://www.tcl.tk/man/tcl/ItclCmd/local.htm
Licensed under Tcl/Tk terms
https://www.tcl.tk/man/tcl/ItclCmd/local.htm