A CoffeeScript programozási nyelv

Utasítások, vezérlési szerkezetek

if/else

Az if/else szerkezetben nem kell a feltétel görbe zárójeleket tennie a feltételben. Itt is a behúzás jelöli a blokkot.

if happy and knowsIt clapsHands() chaChaCha() else showIt()

Az if lehet kifejezés is a CoffeeScript-ben. Ekkor használhatjuk postfix formában is. A postfix formával például feltételes értékadást valósíthatunk meg.

mood = greatlyImproved if singing date = if friday then sue else jill

Ciklusok

A CoffeeScript írója az tapasztalta, hogy a ciklusok többség valamilyen objektumot, vagy tömböt jár be a JavaScript-ben, ezért ezt a nyelvet úgy tervezte, hogy ez ilyen feladatokat könnyen lehessen leírni.

A tömböket for/in kifejezéssel lehet bejárni. A ciklusban megkapjuk az aktuális tömbelem értékét, valamint opcionálisan a jelenlegi indexet. A for/in szerkezetet postfix módon használjuk.

# Eat lunch. eat food for food in ['toast', 'cheese', 'wine'] # Fine five course dining. courses = ['greens', 'caviar', 'truffles', 'roast', 'cake'] menu i + 1, dish for dish, i in courses

Mivel a ciklusok kifejezések, könnyen használhatjuk valamilyen tömb szűrésére őket.

shortNames = (name for name in list when name.length < 5)

Ha fix számú cikluslépést szeretnénk végrehajtani akkor használhatunk egy tartományt a bejáráshoz. Ha a ciklusváltozót egynél nagyobb számmal szeretnénk léptetni, akkor használhatjuk a by kulcsszót.

countdown = (num for num in [10..1]) evens = (x for x in [0..10] by 2)

A CoffeeScript támogat egy (illetve két) alacsony szintű ciklust is. Ez a while és az until. A until tulajdonképen a "while not"-al egyenértékű. Ezek a hagyományos módon működnek, a feltételben nem kell zárójeleket használni és a ciklustörzset a behúzás határozza meg. Ezeket a ciklusokat használhatjuk postfix módon is, kifejezésként.

while x > 1 x -= 1 # Econ 101 if this.studyingEconomics buy() while supply > demand sell() until supply > demand

switch/when/else

Ez a szerkezet a már megszokott switch/case/default szerkezettel azonos, de a JavaScript-el ellentétben itt nem kell break-et írni az egyes esetekhez, az egyes ágak nem csorognak át egymásba. A Ruby-hoz hasonlóan itt is meg lehet adni több értéket is egy ághoz.

switch day when "Mon" then go work when "Tue" then go relax when "Thu" then go iceFishing when "Fri", "Sat" if day is bingoDay go bingo go dancing when "Sun" then go church else go work