お久しぶりです。カイザーです。
さてみなさん、Swiftしてますか?
いいですよね、Swift。
今日は、Swiftのmap、filter、forEachについて紹介します。
まず概要についてはこちらです。
http://qiita.com/motokiee/items/cf83b22cb34921580a52#enumerate要素と要素のインデックスが欲しい時に使う
つまるところ、これまでforinなどの高速列挙を使って、配列の要素に対して、統一した処理を行ったり、条件分岐して絞り込みを行ったり、、、みたいなことが簡単にできます。
ここでサンプルです。
self.stamps = resultStamps.filter({ (element) -> Bool in
element.category == .normal
})
あるコントローラは「stamps」という配列を持っていて、それは「category」というプロパティを持っています。
その「category」がnormalのスタンプのみを絞り込んでいます。
先ほどの記事の例では数字に関するものが多かったですが、このように、モデルクラスに対しても便利に使うことができます。
そのほかにも、filterはこんな風にも使えます。
self.stamps.filter({ stamp -> Bool in
stamp.count > 0
})
先ほどのスタンプで、所持しているものがフィルターされます。
このような感じで、Swiftでは少し気をつけると、かなり簡潔にプログラミングできます、
配列が関連するループでは、forinさえもあまり使わなくても良さそうですね。
ちなみに、Java 8でも同じような機能があります。Android開発でJava 8を使う際も積極的に使っていきたいところですね。
これを使って格好よくプログラミングしちゃいましよう!