Tcl este un limbaj de programare foarte simplu. Dacă ați programatînainte, puteți învăța suficient pentru a scrie tclprograme interesante în câteva ore. Această pagină oferă o prezentare generală rapidădin principalele caracteristici ale Tcl. După ce ați citit acest lucru, probabil veți putea începe să scrieți scripturi Tcl simple pe cont propriu; cu toate acestea, vă recomandăm să consultați una dintre numeroasele cărți Tcl disponibile pentru mai multe informații complete.
Sintaxa de bază
scripturile Tcl sunt alcătuite din comenzi separate de linii noi sau punct și virgulă., Comenzile au toate aceeași formă de bază illustratedby următorul exemplu:
expr 20 + 10
Aceasta comanda calculeaza suma de 20 și 10 și returnează rezultatul, 30.Puteți încerca acest exemplu și toți ceilalți în această pagină bytyping-le la un Tcl aplicație, cum ar fi tclsh
; după comandă completează, tclsh
va afișa rezultatul acesteia.fiecare comandă Tcl constă dintr-unul sau mai multe cuvinte separateprin spații., În acest exemplu, există patru cuvinte: expr
,20
, +
și 10
. Primul cuvânt este numele unei comenzi, iar celelalte cuvinte sunt argumentela acea comandă. Toate comenzile Tcl constau din cuvinte, dar diferitecomandele își tratează argumentele în mod diferit.expr
comanda tratează toate itsarguments împreună, ca o expresie aritmetică, calculează rezultatul de thatexpression, și returnează rezultatul ca un șir de caractere., În expr
comanda împărțirea în cuvinte nu este semnificativă: ai putea aseasily au invocat aceeași comandă ca
expr 20+10
cu toate Acestea, pentru cele mai multe comenzi cuvântul structura este important, cu eachword folosit pentru un scop distinct.
toate comenzile Tcl se întoarcrezultate. Dacă o comandă nu are niciun rezultat semnificativ, atunci returnează șirul anempty ca rezultat.
variabile
Tcl vă permite să stocați valori în variabile și de a folosi valorile laterin comenzi. Comanda set
este utilizată pentru a scrie și readvariables., De exemplu, următoarea comandă modifică variabilax
să dețină valoarea 32
:
set x 32
comanda returnează noua valoare a variabilei. Puteți citi valoarea unei variabile prin invocarea set
cu doar o singleargument:
set x
nu Aveți nevoie pentru a declara variabile în Tcl: o variabilă este createdautomatically prima dată când este setat. Variabilele Tcl nu havetypes: orice variabilă poate deține orice valoare.,
Pentru a utiliza valoarea unei variabile într-o comandă, utilizați variablesubstitution ca în exemplul următor:
expr $x*3
atunci Când un $
apare într-o comandă, Tcl tratează lettersand cifre urma ca un nume de variabilă, și înlocuiește valoarea variabilei în loc de nume. În acest exemplu, theactual argument primite de expr
comanda va fi32*3
(presupunând că variabila x
a fost setas în exemplul anterior)., Puteți folosi variabile de substituție înorice cuvânt de orice comandă, sau chiar de mai multe ori, într-un cuvânt:
set cmd exprset x 11$cmd $x*$x
Comanda de substituție
puteți folosi, de asemenea, rezultatul de o comandă într-un argument pentru a anothercommand. Aceasta se numește substituție de comandă:
set a 44set b
când un ca o comandă Tcl imbricată.Tcl evaluează comanda imbricată și înlocuiește rezultatul săucomanda de închidere în locul textului între paranteze., În theexample de mai sus cel de-al doilea argument al doilea
set
commandwill fi 176
.ghilimelele duble vă permit să specificați cuvinte care conțin spații. De exemplu, ia în considerare următorul script:
set x 24set y 18set z "$x + $y is "
După aceste trei comenzi sunt evaluate variabila z
va avea valoarea 24 + 18 is 42
. Totul între cotație a trecut la comanda set
ca un singur cuvânt., Rețineți că (a) comanda și substituțiile variabile sunt efectuate pe textul dintrecitatele și (b) citatele în sine nu sunt transmise comenzii.Dacă citatele au fost prezenți, set
comanda ar alocate 6 argumente, care ar fi cauzat o eroare.bretelele ondulate oferă un alt mod de grupare a informațiilor în cuvinte.,Ele sunt diferite de citate în care nu substituții sunt performedon textul între acolade:
set z {$x + $y is }
Această comandă setează variabila z
la valoarea”$x + $y is
„.
structuri de Control
Tcl oferă un set complet de structuri de control, inclusiv commandsfor execuție condiționată, looping și proceduri. Controlstructurile Tcl sunt doar comenzi care iau scripturi Tcl ca argumente.,Exemplul de mai jos creează o Tcl procedura numita power
,care ridică o bază pentru un număr întreg de putere:
proc power {base p} { set result 1 while {$p > 0} { set result set p } return $result}
Acest script este format dintr-o singură comandă, proc
. Comandaproc
are trei argumente: numele unei proceduri,o listă de nume de argumente și corpul procedurii, care esteun script Tcl. Rețineți că totul între acoladă la sfârșit de prima linie și acoladă pe ultima linie este passedverbatim să proc
ca un singur argument., proc
comandă creează un nou Tcl comanda numit power
că takestwo argumente. Apoi, puteți invoca power
cu commandslike următoarele:
power 2 6power 1.15 5
power
este invocat, procedura corpul este evaluat.În timp ce corpul execută poate accesa argumentele sale ca variabile:base
va ține primul argument și p
va ține al doilea.,
corpul power
procedură conține trei Tcl comenzi:set
, while
și return
. while
comanda face cele mai multe de lucru de procedura.Este nevoie de două argumente, o expresie ($p > 0
) și trup, care este un alt Tcl script. while
commandevaluates expresia argument folosind reguli similare cu cele din limbajul de programare C și dacă rezultatul este adevărat (diferită de zero) atunciacesta evaluează corpul ca un Tcl script., Se repetă acest proces peste andover până în cele din urmă expresia evaluează la fals (zero). În acest casethe corpul while
comanda înmulțit rezultatul valueby base
și apoi decrementeaza p
. Cândp
atinge zero, rezultatul conține puterea dorită abase
. return
comandă determină procedureto ieșire cu valoarea variabilei result
ca procedura’sresult.
de unde provin comenzile?,
după cum ați văzut, toate caracteristicile interesante din Tcl suntreprezentate prin comenzi. Declarațiile sunt comenzi, expresiile suntevaluate prin executarea comenzilor,structurile de control sunt comenzi, iar procedurile sunt comenzi.comenzile Tcl sunt create în trei moduri. Un grup de comandeeste furnizat chiar de interpretul Tcl. Aceste comenzi sunt numitecomenzi de construcție. Acestea includ toate comenzile pe care le-ați văzut până acum și multe altele (Vezi mai jos). Comenzile builtinsunt prezente în toate aplicațiile Tcl.
al doilea grup de comenzi este creat folosind extensia Tclmecanism., Tcl oferă API-uri care vă permit să creați o nouă comandăprin scrierea unei proceduri de comandă în C sau C++ care implementeazăcomanda. Apoi înregistrați procedura de comandă cu interpretul TCL spunându-i Tcl numele comenzii pe care o implementeazăprocedura. În viitor, ori de câte ori numele respectiveste folosit pentru o comandă Tcl, Tcl va apela procedura de comandă pentru aexecuta comanda. Comenzile încorporate sunt, de asemenea, implementate folosind același mecanism de extensie; procedurile lor de comandă sunt pur și simplu parte a Bibliotecii Tcl.,când Tcl este utilizat în interiorul unei aplicații, aplicația încorporează caracteristicile sale cheie în Tcl folosind mecanismul de extensie. Astfel, setof disponibile comenzi Tcl variază de la aplicație la aplicație.Există, de asemenea, numeroase pachete de extensii care pot fi încorporateîn orice aplicație Tcl. Una dintre cele mai cunoscute extensii este Tk,care oferă facilități puternice pentru construirea de interfețe grafice pentru utilizatori. Alte extensii oferă programare orientată pe obiecte, acces la baze de date,mai multe capabilități grafice și o varietate de alte caracteristici., Unul dintre Tcl’sgreatest avantaje pentru construirea de aplicații de integrare este theease cu care acesta poate fi extins pentru a include noi caracteristici orcommunicate cu alte resurse.
Cel de-al treilea grup de comenzi este format din procedurile creat cu proc
comandă, cum ar fi power
comanda create de mai sus. De obicei, extensiile sunt utilizate pentru nivel inferiorfuncții în care programarea C este convenabilă și sunt utilizate proceduripentru funcțiile de nivel superior unde este mai ușor să scrieți în Tcl.,
alte caracteristici
Tcl conține multe alte comenzi în afară de cele utilizate în exemple thepreceding. Aici este o prelevare de unele dintre featuresprovided prin comanda interna Tcl comenzi:
- Mai multe structuri de control, cum ar fi
if
,for
,foreach
șiswitch
. - manipulare șir, inclusiv o expressionmatching facilitate regulat puternic. Șirurile de lungime arbitrară pot fi transmise în jurși manipulate la fel de ușor ca numerele.,
- I / O, inclusiv fișierele de pe disc, prize de rețea și dispozitive cum ar fica porturi seriale. Tcl oferă facilități deosebit de simple pentrucomunicarea cu buzunare prin Internet.
- gestionarea fișierelor: Tcl oferă mai multe comenzi pentru manipulareanumele fișierelor, citirea și scrierea atributelor fișierelor, copierea fișierelor,ștergerea fișierelor, crearea directoarelor și așa mai departe.
- invocare subproces: puteți rula alte aplicații cu comanda
exec
și comunicați cu ele în timp ce rulează., - liste: Tcl face ușor de a crea colecții de valori (liste)și să le manipuleze într-o varietate de moduri.
- Arrays: puteți crea valori structurate constând din nume-valuepairs cu valori șir arbitrare pentru numele și valorile.
- manipularea timpului și a datei.
- evenimente: Tcl permite scripturilor să aștepte să apară anumite evenimente, cum ar fiun timp scurs sau disponibilitatea datelor de intrare pe o priză de rețea.,
Exemple
- un simplu instrument de linie de comandă
- un simplu server de rețea
Tutorial
au ceva timp pentru a îngropa un pic mai departe în limba?Tutorialul Tcl este o modalitate excelentă de a afla mai multe despre diferitele comenzi și caracteristici ale limbii Tcl.