Tcl je velmi jednoduchý programovací jazyk. Pokud jste programovalipředtím se můžete naučit psát zajímavé Tclprogramy během několika hodin. Tato stránka poskytuje rychlý přehledz hlavních funkcí Tcl. Po přečtení tohoto, budete ale asi schopen začít psát jednoduché Tcl skripty na své vlastní; nicméně, werecommend, že byste se poradit jeden z mnoha dostupných Tcl knihy pro morecomplete informace.
Základní syntaxe
Tcl skripty jsou tvořeny příkazy oddělené newlinesor středníky., Příkazy všechny mají stejný základní tvar illustratedby následující příklad:
expr 20 + 10
Tento příkaz vypočítá součet 20 a 10 a vrátí výsledek, 30.Můžete vyzkoušet tento příklad a všechno ostatní na této stránce bytyping je na Tcl aplikace, jako je tclsh
; po příkaz dokončí, tclsh
otisky jeho výsledek.
každý příkaz Tcl se skládá z jednoho nebo více slov oddělených mezerami., V tomto příkladu jsou čtyři slova: expr
20
+
10
. První slovo je název příkazu a další slova jsou argumentak tomuto příkazu. Všechny příkazy Tcl se skládají ze slov, ale různéoblasti zacházet s jejich argumenty jinak.expr
příkaz léčí všechny itsarguments společně jako aritmetický výraz, vypočítá výsledek thatexpression, a vrátí výsledek jako řetězec., V expr
příkaz rozdělení na slova není významný: dalo by se jen aseasily uplatnily stejný příkaz jako
expr 20+10
Nicméně, pro většinu příkazů slovo struktura je důležité, s eachword používá pro odlišný účel.
všechny příkazy Tcl se vrátívýsledky. Pokud příkaz nemá žádný smysluplný výsledek, vrátí jako výsledek nepěkný řetězec.
proměnné
Tcl umožňuje ukládat hodnoty do proměnných a používat příkazy hodnot laterin. Příkaz set
se používá k zápisu a readvariables., Například následující příkaz změní proměnnáx
držet hodnotu 32
:
set x 32
příkaz vrátí novou hodnotu proměnné. Můžete si přečíst její hodnotu proměnné vyvoláním set
s pouze singleargument:
set x
nemusíte deklarovat proměnné v Tcl: variabilní je createdautomatically první čas je nastaven. Proměnné Tcl nemajítypy: každá proměnná může mít libovolnou hodnotu.,
Chcete-li použít hodnotu proměnné v příkazu, použijte variablesubstitution jako v následujícím příkladu:
expr $x*3
Když $
se zobrazí v příkazu Tcl léčí lettersand číslice následující jako název proměnné, a náhražky hodnoty proměnné v místě názvu. V tomto příkladu, skutečná argument přijat expr
příkaz32*3
(za předpokladu, že proměnná x
setas v předchozím příkladu)., Můžete použít proměnné nahrazení jakékoliv slovo libovolný příkaz, nebo i několikrát v rámci jediné slovo:
set cmd exprset x 11$cmd $x*$x
Příkaz substituce
můžete také použít výsledek jednoho příkazu jako argument k anothercommand. Toto se nazývá substituce příkazu:
set a 44set b
Když jako vnořený příkaz Tcl.Tcl hodnotí vnořený příkaz, a nahrazuje jeho výsledek do obvodových příkaz na místě uzávorkovaný text., V příkladu nad druhým argumentem druhého
set
příkaz bude 176
.
uvozovky a závorky
dvojité uvozovky umožňují určit slova, která obsahují mezery. Například zvažte následující scénář:
set x 24set y 18set z "$x + $y is "
Po tyto tři příkazy jsou hodnoceny proměnné z
bude hodnota 24 + 18 is 42
. Vše mezi quotesis bylo předáno příkazu set
jako jediné slovo., Všimněte si, že (a) příkaz a variabilní substituce jsou prováděny na textu mezivazby a (b) samotné citace nejsou předány příkazu.Pokud by citace nebyly přítomny, měl by příkazset
získat 6 argumentů, což by způsobilo chybu.
kudrnaté rovnátka poskytují další způsob seskupení informací do slov.,Oni se liší od uvozovek v tom, že žádné náhrady jsou performedon text mezi složené závorky:
set z {$x + $y is }
Tento příkaz nastaví proměnnou z
s hodnotou“$x + $y is
„.
řídicí struktury
Tcl poskytuje kompletní sadu řídicích struktur včetně příkazůpro podmíněné provedení, smyčku a postupy. TCL controlstructures jsou jen příkazy, které berou TCL skripty jako argumenty.,Níže uvedený příklad vytvoří Tcl postup se nazývá power
,která zvyšuje základ pro celé napájení:
proc power {base p} { set result 1 while {$p > 0} { set result set p } return $result}
Tento skript se skládá z jediného příkazu, proc
. Příkazproc
má tři argumenty: název postupu, seznam názvů argumentů a tělo postupu, který isa TCL skript. Všimněte si, že všechno mezi složenou závorkou na konci prvního řádku a složená závorka na posledním řádku je passedverbatim proc
jako jediný argument., Příkaz proc
vytvoří nový příkaz Tcl s názvem power
, který takestwo argumenty. Pak můžete vyvolat power
s commandslike následující:
power 2 6power 1.15 5
Když power
je vyvolána, postup, tělo je hodnocena.Zatímco tělo vykonává to může přístup k jeho argumenty jako proměnné:base
bude mít první argument a p
pořádat druhý.,
tělo power
postup obsahuje tři Tcl příkazy:set
while
return
. while
příkaz dělá většinu práce řízení.To trvá dva argumenty, výraz ($p > 0
) a tělo, které je další Tcl skriptu. while
commandevaluates jeho argument výraz pomocí pravidla podobná těm z C programovací jazyk, a pokud je výsledek true (nenulovou) je hodnotí tělo jako Tcl skript., Opakuje tento proces znovu a znovu, dokud nakonec výraz vyhodnotí na false (nula). V tomto případě smlouvastanovila tělo while
příkaz násobí výsledek valueby base
a pak sníží p
. Kdyžp
dosáhne nuly, výsledek obsahuje požadovaný výkonbase
. Příkaz return
způsobí, že se procedura ukončí hodnotou proměnné result
jako výsledek postupu.
odkud pocházejí příkazy?,
jak jste viděli, všechny zajímavé funkce v Tcl jsoupředstavené příkazy. Příkazy jsou příkazy, výrazy jsouvyhodnocené prováděním příkazů,řídicí struktury jsou příkazy a postupy jsou příkazy.příkazy
TCL jsou vytvořeny třemi způsoby. Jedna skupina příkazůje poskytována samotným tlumočníkem Tcl. Tyto příkazy jsou volánybudované příkazy. Zahrnují všechny příkazy, které jste dosud viděli, a mnoho dalších (viz níže). Vestavěné příkazyjsou přítomny ve všech aplikacích Tcl.
druhá skupina příkazů je vytvořena pomocí TCL extensionmechanismu., Tcl poskytuje API, která vám umožní vytvořit nový příkazpsáním příkazového postupu v C nebo C++, který implementujepříkaz. Poté registrujete příkazový postup s interpretem theTcl tím, že řeknete Tcl název příkazu, který implementuje. V budoucnu, kdykoli je toto konkrétní jménopoužívá se pro příkaz Tcl, Tcl zavolá příkazový postup, aby se příkaz objevil. Vestavěné příkazy jsou také implementovány pomocítento stejný mechanismus rozšíření; jejich příkazové postupy jsou jednoduše součástí knihovny Tcl.,
Když se Tcl používá uvnitř aplikace, aplikace začlení své klíčové funkce do Tcl pomocí prodlužovacího mechanismu. Setof dostupných příkazů Tcl se tedy liší od aplikace k aplikaci.Existují také četné balíčky rozšíření, které lze začlenitdo jakékoli aplikace Tcl. Jedním z nejznámějších rozšíření je Tk,který poskytuje výkonné zařízení pro vytváření grafických uživatelůinterface. Další rozšíření poskytují objektově orientované programování, přístup k databázi,více grafických možností a řadu dalších funkcí., Jednou z největších výhod TCL pro budování integračních aplikací je možnost rozšíření o nové funkce nebo propojení s dalšími zdroji.
třetí skupina příkazů se skládá z postupů vytvořen s proc
příkaz, například power
příkaz vytvořili výše. Typicky se rozšíření používají pro nižší úroveňfunkce, kde je programování C pohodlné a používají se postupypro funkce vyšší úrovně, kde je snadnější psát v Tcl.,
Další funkce
Tcl obsahuje mnoho dalších příkazů, kromě těch, které používají v thepreceding příklady. Zde je sampler některých featuresprovided o builtin Tcl příkazy:
- Další řídicí struktury, jako je
if
for
foreach
switch
. - manipulace s řetězci, včetně silného pravidelného expressionmatching zařízení. Libovolné délky řetězce mohou být předány kolema manipulovat stejně snadno jako čísla.,
- I / o, včetně souborů na disku, síťových zásuvek a zařízení suchas sériové porty. Tcl poskytuje zvláště jednoduché zařízeníkoketová komunikace přes Internet.
- správa Souborů: Tcl poskytuje několik příkazů pro manipulatingfile jména, čtení a psaní atributy souborů, kopírování souborů,mazání souborů, vytváření adresářů, a tak dále.
- subprocess invocation: můžete spustit další aplikace pomocí příkazu
exec
a komunikovat s nimi, když běží., - seznamy: Tcl usnadňuje vytváření sbírek hodnot (seznamů) a manipulaci s nimi různými způsoby.
- pole: můžete vytvořit strukturované hodnoty sestávající z jmenných hodnot s libovolnými hodnotami řetězců pro jména a hodnoty.
- manipulace s časem a datem.
- události: Tcl umožňuje skriptům čekat na určité události, jako napřposledovaný čas nebo dostupnost vstupních dat v síťové zásuvce.,
Příklady
- jednoduchý nástroj příkazového řádku
- jednoduchý síťový server
Návod
nějaký čas se ponořit trochu hlouběji do jazyka?Tcl Tutorialje skvělý způsob, jak se dozvědět více o různých příkazech Tcl ajazyčné funkce.