AppleScript - Třídy - MujMAC.cz - Apple, Mac OS X, Apple iPod

Odběr fotomagazínu

Fotografický magazín "iZIN IDIF" každý týden ve Vašem e-mailu.
Co nového ve světě fotografie!

 

Zadejte Vaši e-mailovou adresu:

Kamarád fotí rád?

Přihlas ho k odběru fotomagazínu!

 

Zadejte e-mailovou adresu kamaráda:

Seriály

Více seriálů



Software

AppleScript - Třídy

6. června 2006, 00.00 | Dnes se znovu podíváme na proměnné, tentokrát podrobněji a hned začneme jejich třídami. Možná to zní složitě ale jak už je pro AppleScript typické, nebude to zase taková věda. Navíc si ještě ukážeme pár příkladů, jak s proměnnými pracovat.

Třídy v AppleScriptu jsou vlastně typy obsahu proměnných, může to být například text (string), číslo (integer, real, number), datum (date), seznam (list) nebo bitová informace ano/ne (boolean). Každá třída má svá pravidla a zákonitosti, které musíme respektovat a dodržovat je. Tak se pojďme podívat na jednu po druhé.

"string" (řetěz) – je třída pro text, používáme jí k zapsání textových zpráv, výstrah, a k uložení čehokoli, co má být textem. String class se vymezuje vrchními dvojitými uvozovkami na začátku a na konci textu a Script editor je barví černě. V našem programu je to například tvrzení: "AppleScript je bezva", nebo i názvy tlačítek, které jsou také krátkými texty. Napíšeme-li tedy číslo 123 v uvozovkách "123" nejedná se o číslo, ale o text. Dokážeme si to na malém příkladu. Napište do nového okna v AppleScriptu:

set pokusna_promenna to "123" 
pak stiskněte Enter a na další řádek napište:
set co_to_je to class of pokusna_promenna 
a na další řádek:
get co_to_je 
Program zkompilujte a spusťte, v poli result se vám objeví string. Vymažte ale uvozovky v prvním řádku a opět spusťte. Nyní v poli result uvidíte integer – to už je ale jiná třída.

"integer" (celé číslo) – Jak už nám napověděl minulý příklad, jedná se o číslo. Ale není to číslo každé. Třída integer pokrývá všechna celá čísla, a to jak kladná tak záporná a to v rozmezí –(2ˆ29– 1) to (2ˆ29 – 1), neboli –536870911 do 536870911. Tato velikost je daná fyzickou velikostí integeru, a to jsou 4 byty. Pro větší celá čísla můžeme použít Double Integer který má velikost 8 bytů.

"real" – je také číslo, tentokrát ale může obsahovat i desetinná místa a exponenciály. Dopište za číslo v našem příkladu tečku a po zkompilování se za tečkou objeví i nula a po spuštění se dozvíme, že třída čísla 123.0 je real. Rozsah třídy real je od -1.797693 ×10ˆ308 do 1.797693 ×10ˆ308. Číslo real můžeme zadat také pomocí exponenciálu a to ve tvaru 1.23e-3. Písmeno e může být velké i malé, Script Editor si po zkompilování vše sám opraví, a to jak písmeno e, tak i číslo převede do podoby, která mu nejlépe vyhovuje. 0.00123 je tedy konečná podoba čísla 1.23e-3 po zkompilování. Ještě si řekněme o třídě number, která pokrývá obě popsané třídy a používáme jí nejčastěji při převodech čísel, nevíme-li zda bude výsledek integer či real.

"boolean" – Potřebujete-li zaznamenat informaci, zda je něco pravda nebo ne, případně je-li nějaká funkce zapnuta či vypnuta, použijte k tomu třídu boolean. Jejím obsahem je vždy ano nebo ne, respektive "true" a "false". AppleScript sám používá tuto třídu např. jako výsledek při zjišťování jsou-li nějaké věci stejné. Pro příklad si upravme náš skript následovně:

set pokusna_promenna to 123 is 321
Po spuštění se dozvíte, že třída naší proměnné je boolean. Vyměňte ještě poslední řádek za:
get pokusna_promenna
Nyní se dozvíme i její hodnotu, což je "false".

"list" (seznam) – Tuto třídu asi není nutné nějak blíže přibližovat, protože je přesně tím, co si pod jejím názvem představíme. Řekněme si tedy jen, že seznam může obsahovat jak text, číslo, boolean, tak i všechno dohromady. Seznam je v AppleScriptu tvořen složenými závorkami a jednotlivé položky jsou oddělovány čárkou. Práce se seznamy je jednou z klíčových funkcí AppleScriptu a budeme se jí podrobně věnovat v některém dalším dílu.

"date" (datum) – Třída data je také naprosto jasná a dnes ji nebudeme nijak moc rozebírat. Data jsou v AppleScriptu kapitola sama pro sebe, dají se sčítat, odčítat, rozebrat na jednotlivé části jako je den, měsíc, čas a dají se využít mnoha způsoby. Zákonitosti a úskalí práce s daty si ale také necháme do nějakého dalšího pokračování.

Ještě si dnes povíme něco o převodech mezi jednotlivými třídami. Ty provádíme jednoduše tak, že při definování proměnné specifikujeme i její třídu. To děláme pomocí příkazu "as", který se umísťuje na konec příkazu set a je následován jménem patřičné třídy. Upravte v našem příkladu první řádek následovně:

set pokusna_promenna to 123 as string 
Po spuštění se v poli Result objeví "string", přestože 123 je číslo. Převedli jsme tedy číslo na string a nyní s ním můžeme pracovat jako s textem. Při převodech si musíme dát pozor na jediné, převádět vždy jen to, co do dané třídy převést jde. V opačném případě bude výsledkem error. Pokusíme-li se převést 123 na datum, dostaneme zpět chybu AppleScriptu.


Nakonec si ještě ukážeme jak použít proměnnou result. Ta obsahuje vždy výsledek poslední provedené operace ať je to příkaz set, nebo displej dialog. Nás tato proměnná zajímá nejvíce právě u těch složitějších příkazů, kde chceme dále pracovat s výsledkem. Dalším příkazem se totiž můžeme na hodnotu proměnné result zeptat. Ukážeme si to na příkladu. Otevřete si náš program a na konec napište:

set tlacitko to button returned of result 
pak enter a na další řádek:
get tlacitko
Tímto jste vybrali z výsledku operace displej dialog pouze tlačítko, které bylo zmáčknuto a uložili ho do proměnné tlacitko. Spusťte program a při dialogu zmáčkněte nějaké tlačítko, jeho název pak uvidíte v poli Result. Tento způsob je správný a v jednoduchých skriptech je naprosto ideální. Co ale dělat v případě že máme skript složitější, nebo chceme znát výsledek až po nějaké době?! Tak to si povíme příště a pak si také dáme malou lekci matematiky.

Obsah seriálu (více o seriálu):

Tématické zařazení:

 » Rubriky  » Informace  

 » Rubriky  » Agregator  

 » Rubriky  » Software  

 

 

 

Nejčtenější články
Nejlépe hodnocené články
Apple kurzy

 

Přihlášení k mému účtu

Uživatelské jméno:

Heslo: