たとえばmap。これって、よくコレクションにつかうメソッドですの。
 でも、そういうメソッドが、実はOption型にも付いてるんですの。(たくさん!)

 Option型を使う場合、基本的にはmatchを使って中身を調べるのですけど、それをさぼる方法もいっぱい用意されてますの。きっと、コレクション操作メソッドもその一つですの。
 これを使うと、Option型の処理をコレクション操作の中に自然に織り込めるという点で、とっても素敵なのですの。

 よく見かけるのは、foreachを使う方法ですの。でも、mapなら値が返ってくるので、より関数型ちっくな書き方ができますの。この辺の選択基準は、コレクションを扱うときと同じですの。

 mapやforeachの他にも、filterやcollectなんかもあって、果てはイテレータまで取れるので、もうコレクションの一種だと思ってしまってもいいくらいですの。

 ただ、実際のところ、コレクションとは継承関係の繋がりは一切無くて、あくまで同名の専用メソッドを用意しているだけのようなので、全く同じように使えるわけでは無いのですの。ちょっと注意ですの。

 それがハッキリわかるのが、mapとflatMapの動作で、次回はそれについてですの。

0 コメント: