Spec-Zone.ru › Tcl/Tk

локальный

Имя

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

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API