Incr Tcl

Incr TCL (ITCL) este prima dintre extensiile orientate pe obiecte ale limbajului TCL . Implementat parțial în limbajul C. Cu utilizarea sa este scrisă biblioteca de widget -uri grafice incr Widgets (iWidgets). Numele acestei extensii este un fel de „traducere” a numelui C++ în limbajul Tcl , comanda incr , ca și operația ++ , își incrementează argumentul cu 1.

Alături de XOtcl și SNIT , este una dintre cele mai populare trei extensii Tcl orientate pe obiecte [1] .

Comenzi

ITCL - definește următoarele comenzi:

Un exemplu de definiție de clasă

De exemplu, este dat un înveliș de obiect peste fișierele text Tcl. Afișează utilizarea configuratoarelor.

fisier clasa { # descrieți și setați valorile inițiale # de variabile locale variabile private fid " " nume variabilă publică „” acces variabilă publică „r” # definește constructorul și constructorul destructor { args } { eval configure $args # configure activează configuratorii } destructor { dacă { $fid != "" } { închide $fid } } #describe class methods method get {} method put { line } method eof {} } # defini corpurile metodei body File::get {} { return [ gets $fid ] } body File::put { line } { pune $fid $line } body File::eof {} { return [ :: eof $fid ] } # definiți configuratorul pentru # nume variabilă globală # configuratorul pentru acces nu este creat configbody File::name { dacă { $fid != "" } { închide $fid } set fid [ deschide $nume $acces ] } # # clasa File în acțiune: # # creați un obiect File x #configurează numele său x configure - name / etc / passwd #afișează conținutul fișierului, rând cu rând, în timp ce { ! [ xeof ] } { pune „=> [x get]” } #delete object șterge obiectul x

Diferiții membri ai unei clase sunt descriși cu următoarele comenzi disponibile în interiorul definiției clasei: constructor , destructor , method , proc (spre deosebire de o metodă nu este moștenită), variabilă , comun (asemănător cu static în C++), public , protected , private , set și matrice . Moștenirea este setată cu comanda moștenire . Moștenirea multiplă este permisă. Toate metodele sunt virtuale. Când definiți o clasă, puteți utiliza tehnici de metaprogramare , de exemplu, pentru a defini mai multe variabile locale într-o buclă, împreună cu setați și obțineți accesorii la acestea [3] .

Comenzi compuse

O echipă (sau ansamblu) compusă este definită ca:

nume ansamblu comandă comp arg arg ...

sau

compoziție nume ansamblu { numele părțiiArgumente părți body nume ansambluSubConst { numele părții Subparts argumente body } }

Ansamblurile Tcl sunt un supliment sintactic convenabil pentru mecanismul standard al ansamblului de spații de nume Tcl . Acest mecanism vă permite să grupați mai multe comenzi într-un singur spațiu de nume - un ansamblu. Apelarea comenzii - o parte a ansamblului arată astfel:

nameConst argumente nameParts

Pot exista orice număr de constructe de ansamblu cu același nume, toate părțile definite în ele vor fi incluse în același ansamblu [4] .

Link -uri

Vezi și

Note

  1. Clif Flynt. Ch. 9. Programarea de bază orientată pe obiecte în Tcl // Tcl/Tk: A Developer's Guide. — ediția a 3-a. - Elsevier, 2012. - P. 263. - 792 p. — ISBN 978-0-12-384717-1 .
  2. vezi man itcl::scop pentru detalii de implementare Arhivat 2007-02-20 la Wayback Machine
  3. vezi Metode de obținere/setare automată pentru o clasă itcl Arhivat la 7 octombrie 2007 la Wayback Machine
  4. comportamentul natural al spațiului de nume

Literatură

  • Chad Smith. Incr Tcl/Tk de la zero. - Osborne / McGraw-Hill, 2000. - 746 p. — ISBN 0-07-212106-8 .
  • Clif Flynt. 17.1 [incr Tcl] // Tcl/Tk: Ghidul dezvoltatorului . - Elsevier, 2012. - S. 667-670. — 817 p. — ISBN 9780123847188 .