Indien en indien anders AppleScript-voorwaardelijke vermeldingen

Voorwaardelijke uitspraken vormen de ruggengraat van veel programmeer- en scripttalen. In AppleScript bieden ze een manier om een ​​andere dimensie van complexiteit aan uw scripts toe te voegen door verschillende situaties te analyseren en erop te reageren. Deze tutorial zal van dichtbij bekijken als en als anders uitspraken en de verschillende manieren om ze in een script te implementeren.


Duiken diep in AppleScript

Tot nu toe hebben we twee artikelen geplaatst die perfect zijn om je van een complete beginner naar iemand te brengen die zich vaardig genoeg een weg baant door een basisscript:

  • De ultieme beginnershandleiding voor AppleScript
  • Geavanceerde AppleScript-technieken

Deze tutorials dienen als een overzicht en geven u een goed idee van hoe AppleScript werkt en welke soorten programmeerstructuren erbij betrokken zijn. Als je echt de intentie hebt om een ​​scriptschrijver te worden, moet je echter veel dieper ingaan op de syntaxis en constructies waaruit AppleScript bestaat.

Maak je geen zorgen, we zijn bij je elke stap van de weg. Dit is de eerste in een serie artikelen die verschillende aspecten van AppleScript uitgebreid zal bekijken, zodat u gebruik kunt maken van de geweldige kracht om uw Mac te automatiseren.

Tip: Als u de scripts in dit bericht wilt uitvoeren, moet u de app "AppleScript Editor" openen, die u kunt vinden in Programma's> Hulpprogramma.


Wat nou als?

In AppleScript zul je moeilijk worden ingedrukt om twee karakters te vinden die wedijveren met de kracht van "als". Als je leert om dit ogenschijnlijk eenvoudige hulpmiddel goed te hanteren, zul je ver gaan.

Een basis als verklaring werkt veel als een vertellen blok. Alleen voor een opfriscursus, hier is de structuur van een vertellen:

[Applescript]
vertel de applicatie "Safari"
activeren
einde vertellen
[/ Applescript]

Zoals je kunt zien, lanceert dit script Safari. Het heeft drie regels: de eerste en de laatste bevatten het tell-blok, dat altijd een einde uitspraak. Alles tussen deze twee lijnen vormt de kern van het vertelblok.

Voorwaardelijke verklaringen, evenals vele andere constructies, lenen dezelfde structuur, maar deze keer gebruiken we deze als in plaats van vertellen.

[Applescript]
indien waar dan
--doe iets
stop als
[/ Applescript]

Deze structuur is vrij eenvoudig en zou volkomen logisch moeten zijn. Eerst begin je je voorwaardelijke verklaring en je kwalificeert het met een booleaans schrift, dan schrijf je je commando's die in het geval van een waarheid worden geactiveerd, en ten slotte sluit je je verklaring af met een einde.


Anatomie van een voorwaardelijke verklaring

Tip: In AppleScript Editor hoeft u "end if" niet in te typen, alleen "end". De compiler voegt automatisch de rest toe, zelfs als u meerdere eindinstructies hebt die tot verschillende soorten blokken behoren. Het komt allemaal voor je uit!


Boolie What Now?

Voordat we verder gaan, is het absoluut cruciaal dat je precies begrijpt wat ik bedoel als ik verwijs naar een boolean. Boolean is een gegevenstype dat slechts uit twee waarden kan bestaan: waar of onwaar. In de wereld van de computerwereld bestaan ​​absoluutheden absoluut. Of iets is, of het is niet, er is geen tussendoortje.

AppleScript kan gemakkelijk achterhalen of bepaalde dingen waar zijn en deze kennis gebruiken om een ​​voorwaardelijke verklaring af te dwingen. Om het uit te proberen, probeer een gelijkheidsverklaring rechtstreeks in AppleScript Editor in te tikken en uit te voeren.


"Waar" wordt geretourneerd

Zoals u kunt zien, evalueerde de compiler de instructie, "10> 1" en correct "true" geretourneerd. Als we dat gelijkheidssymbool omdraaien en "10 < 1", "false" is returned. This goes way beyond numeric expressions, pretty much any statement that AppleScript is able to evaluate should work as well. Here's a quick check of the current day of the week, which returns "true".


ApplScript kan allerlei verschillende verklaringen evalueren.

Hoe voorwaarden Booleans gebruiken

Nu je begrijpt wat een booleaanse is, is het gemakkelijker om je geest in te wijden rond hoe conditionals werken. Zoals we in de bovenstaande tabel zagen, zegt een voorwaardelijke verklaring: "als deze booleaanse waarde als waar wordt geëvalueerd, doe dan iets."

Laten we dit in de praktijk bekijken met de "10> 1" -instructie die we eerder hebben getest:

[Applescript]
als 10> 1 dan
terug "Dat klopt!"
stop als
[/ Applescript]

Hier hebben we het woord 'waar' vervangen door iets dat we willen dat AppleScript evalueert. De structuur hier is precies wat we eerder zagen:


Uitsplitsing van een voorwaardelijke verklaring.

Met deze structuur worden de opdrachten in de if-instructie alleen uitgevoerd als de booleaanse waarde true is. In dit geval is de verklaring waar, dus we zullen het volgende zien in het gedeelte "Resultaat" van het AppleScript Editor-venster.


Het script kwam terug: "Dat klopt!"

Enkelvoudige voorwaardelijke voorwaarden

In het geval dat je je afvraagt, is er een speciale, beknopte vorm van een als verklaring die slechts één regel beslaat. Het vereist geen "einde" en kan geen van de extra complexiteit aannemen die we in de volgende sectie zullen bekijken, maar het is handig voor eenvoudige gevallen.

[Applescript]
--Eén regel als statement
als 10> 2 geef dan "ja" terug
[/ Applescript]


Anders

Als uitspraken zijn geweldig, maar ze zijn een beetje beperkt in de vorm die we tot nu toe hebben gezien. Bijvoorbeeld, wat als de booleaanse waarde in het script niet klopte? Hier is een voorbeeld:

[Applescript]
stel x in op 20

als 10> x dan
return "10 is groter dan" & x
stop als
[/ Applescript]

Zoals je kunt zien, verhoog ik hier geleidelijk de complexiteit, zodat je meer vertrouwd raakt met algemene patronen en constructies. In dit voorbeeld stellen we eerst een variabele in, X, stel die variabele dan in op 20. Nu, wanneer we onze als verklaring, wordt het getal 10 vergeleken met de variabele.

In dit geval is 10 niet groter dan 20, dus de boolean is onwaar. Dit betekent dat ons script helemaal niets zal doen! Om dit probleem op te lossen, gaan we naar anders. Laten we ons script een beetje aanpassen:

[Applescript]
stel x in op 20

als 10> x dan
return "10 is groter dan" & x
anders
return "10 is niet groter dan" & x
stop als
[/ Applescript]

Het mooie van AppleScript is dat het zo leesbaar is voor mensen. Als je dit script gewoon hardop leest, kun je precies vertellen wat het doet. Dit is het overzicht:

  • Wijst een waarde van 20 toe aan X
  • Vergelijkt het nummer 10 met X om te zien of 10 groter is
  • Als 10> x, stuur de volgende verklaring terug
  • Als dit niet het geval is, retourneert u deze andere verklaring in plaats daarvan

Aangezien 10 niet groter is dan 20, wordt de tweede verklaring geretourneerd. Uw resultaat zou er ongeveer zo uit moeten zien:


Het script kwam terug: "Dat klopt!"

Nu we twee verschillende Boolean-scenario's kunnen verklaren, zijn we veel beter in staat complexe scriptinguitdagingen aan te pakken.

Anders Als

Zoals je je kunt voorstellen, is zelfs dit niet genoeg om rekening te houden met alle verschillende situaties die je tegen zult komen. Misschien hebben we een tamelijk complex scenario dat een aantal verschillende uitkomsten mogelijk maakt.

In dit scenario kunnen we implementeren anders als om door te gaan met het toevoegen van complexiteit aan ons als uitspraak. Stel je de volgende situatie voor:

[Applescript]
stel de weekdag in op de dag van de week (huidige datum)

als (theWeekDay = vrijdag) dan
terug "Je bent bijna gratis!"
anders als (theWeekDay = zaterdag) dan
terug "Het is het weekend!"
anders als (theWeekDay = zondag) dan
terugkeer "Rustig, want morgen werken wij."
anders
terug "Hang daar binnen, het is nog geen weekend!"
stop als
[/ Applescript]

Nogmaals, zelfs als u niet bekend bent met AppleScript, maakt de natuurlijke taal het vrij eenvoudig om erachter te komen wat er aan de hand is. Eerst stellen we een variabele in op de huidige weekdag. Vervolgens maken we een reeks tests met behulp van als, anders als en anders om op de juiste dag van de week tot een geschikt retourbericht te komen.


"Anders als" in actie.

Tijdens het uitvoeren zal het script de eerste proberen als uitspraak. Als dat waar is, wordt de eerste return-opdracht uitgevoerd en wordt het script beëindigd (er worden geen verdere stappen genomen). Echter, als die bewering onwaar blijkt te zijn, de eerste anders als wordt uitgeprobeerd, dan de tweede en tenslotte, als geen van die bewijzen waar is, de laatste anders begint en geeft een verklaring terug dat het nog geen weekend is.

Leaner Code is Better

De anders als structuur is ongelooflijk krachtig en stelt u in staat om rekening te houden met een aantal verschillende scenario's. Terwijl je bepaalde projecten codeert, kun je soms in de verleiding komen om vijf, tien of zelfs vijftien bij elkaar te houden anders als uitspraken om alle beschikbare mogelijkheden te doorlopen. Helaas is dit meestal geen goede manier om te coderen en kan dit leiden tot een hoop onnodige bloat.

Wees altijd bedachtzaam tijdens het gebruik anders als en vraag jezelf af of er een betere manier is om te doen wat je probeert te bereiken. Het is vaak veel praktischer en korter om een ​​lus van een soort te gebruiken, maar dat is een artikel voor een andere dag (binnenkort beschikbaar!).

Dit of dat?

Nog een laatste stukje advies over als statements. Een alternatief voor anders is om te gebruiken of in plaats daarvan. Hier is een vereenvoudigde versie van het weekdag-script met of en slechts twee mogelijke retourverklaringen.

[Applescript]
stel de weekdag in op de dag van de week (huidige datum)

if (theWeekDay = Saturday) of (theWeekDay = Sunday) then
terug "Het is het weekend!"
anders
terug "Hang daar binnen, het is nog geen weekend!"
stop als
[/ Applescript]

Blijf kijken

Dit omvat het grootste deel van wat u moet weten over conditionals. Open AppleScript Editor en begin met het experimenteren met je eigen voorwaardelijke uitspraken. Met welke coole scripts kan je komen?

Dit is slechts het topje van de spreekwoordelijke ijsberg wat betreft onze verslaggeving over AppleScript. Dit is een ongelooflijk uitgebreid onderwerp dat veel potentieel biedt om je beheersing over je Mac te vergroten, dus we zullen nog veel meer geweldige AppleScript-tutorials hebben om je te helpen een echte automatiseringsdeskundige te worden.