manpagez: man pages & more
man local(n)
Home | html | info | man
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 state-
       ments 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)

Mac OS X 10.8 - Generated Sun Sep 9 13:36:08 CDT 2012
© manpagez.com 2000-2025
Individual documents may contain additional copyright information.