Incr Tcl

Incr TCL (ITCL) är den första av de objektorienterade tilläggen till TCL -språket . Delvis implementerad i C- språk . Med dess användning skrivs biblioteket av grafiska widgets incr Widgets (iWidgets). Namnet på det här tillägget är en slags "översättning" av C++- namnet till Tcl-språket , incr- kommandot , liksom ++- operationen , ökar dess argument med 1.

Tillsammans med XOtcl och SNIT är det en av de tre mest populära objektorienterade Tcl-tilläggen [1] .

Kommandon

ITCL - definierar följande kommandon:

Ett exempel på klassdefinition

Som ett exempel ges ett objektomslag över Tcl-textfiler. Visar användningen av konfiguratorer.

klassfil { _ # beskriv och ställ in initiala värden # av lokala variabler privat variabel fid "" offentlig variabelnamn " " offentlig variabel åtkomst "r" # define constructor och destructor constructor { args } { eval configure $args # configure aktiverar konfiguratorer } förstörare { if { $fid != "" } { stäng $fid } } #describe class methods method get {} method put { line } method eof {} } # definiera metodkroppar body File::get {} { return [ gets $fid ] } body File::put { line } { lägger $fid $line } body File::eof {} { returnera [ :: eof $fid ] } # definiera konfigurator för # globalt variabelnamn # konfigurator för åtkomst skapas inte configbody File::name { if { $fid != "" } { stäng $fid } set fid [ öppna $name $access ] } # # File-klassen i aktion: # # skapa ett File x -objekt #configure dess namn x configure - name / etc / passwd #visa innehållet i filen rad för rad medan { ! [ xeof ] } { sätter "=> [x get]" } #delete objekt ta bort objekt x

De olika medlemmarna i en klass beskrivs med följande kommandon tillgängliga i klassdefinitionen: constructor , destructor , method , proc (till skillnad från en metod är inte ärvd), variabel , common (liknar statisk i C++), public , protected , private , set och array . Arv ställs in med kommandot inherit . Multipelarv är tillåtet. Alla metoder är virtuella. När du definierar en klass kan du använda metaprogrammeringstekniker , till exempel för att definiera flera lokala variabler i en loop, tillsammans med set och få accessorer till dem [3] .

Sammansatta kommandon

Ett sammansatt lag (eller ensemble) definieras som:

ensemble name comp kommando arg arg ...

eller

ensemble namecomposition { part nameDelar argument body ensemble nameSubConst { delnamnSubparts argument body } } _

Tcl-ensembler är ett bekvämt syntaktisk tillägg till standardmekanismen för Tcl- namnutrymmesensemble . Denna mekanism låter dig gruppera flera kommandon i ett namnområde - en ensemble. Att anropa kommandot - en del av ensemblen ser ut så här:

nameConst nameParts argument

Det kan finnas valfritt antal ensemblekonstruktioner med samma namn, alla delar som definieras i dem kommer att inkluderas i samma ensemble [4] .

Länkar

Se även

Anteckningar

  1. Clif Flynt. Ch. 9. Grundläggande objektorienterad programmering i Tcl // Tcl/Tk: En utvecklarguide. — 3:e upplagan. - Elsevier, 2012. - S. 263. - 792 sid. — ISBN 978-0-12-384717-1 .
  2. se man itcl::omfattning för implementeringsdetaljer Arkiverad 2007-02-20 på Wayback Machine
  3. se Automatiska get/set-metoder för en itcl-klass Arkiverad 7 oktober 2007 på Wayback Machine
  4. naturligt namnrymdsbeteende

Litteratur

  • Chad Smith. Öka Tcl/Tk från grunden. - Osborne / McGraw-Hill, 2000. - 746 sid. — ISBN 0-07-212106-8 .
  • Clif Flynt. 17.1 [inkr Tcl] // Tcl/Tk: En utvecklarguide . - Elsevier, 2012. - S. 667-670. — 817 sid. — ISBN 9780123847188 .