CoffeeScriptのforイテレーションまとめ

CoffeeScriptのfor文によるループは、実はかなり強力。

しかし公式サイトを読んだだけでは、すぐにはそのすばらしさが分からなかった。

というわけで、今回はCoffeeScriptのfor文のいろいろな使い方についてまとめてみた。

配列のforループ

CoffeeScriptの公式サイトには、forの使い方が次のように紹介されている。

 

配列のそれぞれの要素がfood変数に代入され、それをeat()メソッドを呼び出している。

ただ、なんだか横に長いので、好きになれない。

 

横に長いのが好きでない人や、複数の命令をループ内で書きたい場合には、このように、ループの要素に対する処理命令を、for文の次の行にもってこれる。

 

インデックス付きforループ

 

条件付きforループ

ループの中で、処理を行うかどうかの判断条件も、ループの中に定義できる。

wineは食べ物でなく、やはりeatしたくないので、wineはループで処理しないようにする。

whenキーワードの後に条件を書けば、条件がtrueになる要素のみ処理が実行される。

ここで登場したisntキーワードは、Operators and Aliasesで出てくる、===のエイリアスのことであって、for文専用のキーワードというわけではない。

ハッシュのforループ

ハッシュの配列のループと異なる点は

の2点だ。

 

ハッシュのキーのみforループ

もしもキーしか使用しないなら、forキーワードの後の、値を格納する変数の宣言は省略できる。

 

ハッシュの条件付きforループ

配列の場合と同様、whenキーワードの後に、処理を行う場合の条件判断を追加することができる。

イテレーションと改行

CoffeeScriptでのイテレーションは、通常は1行でズバッと記述するか、ループ毎に実行する処理のみ次の行にインデントする形での記述が基本になる。

または

 

配列宣言が長くなる場合には、ループ処理の前に、配列を変数に代入しておけば、for文での1行の文字数は少なくすることができる。

 

改行できるパターン

配列宣言の中でなら改行できる。

とか

 

改行できないパターン

文法的な箇所では改行できない。

 

これは動作しない

 

これも動作しない

 

 

最初にCoffeeScriptのループ構文を見た時は、なんだか奇妙な構造に見えたこともあったけど、使ってるうちに、結構しっくりくるようになってきたような気がする。

コメントを残す

トラックバック: http://pgnote.net/wp-trackback.php?p=760