Swiftのmap、filter、forEachでワンランクアップ!

お久しぶりです。カイザーです。

さてみなさん、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を使う際も積極的に使っていきたいところですね。

これを使って格好よくプログラミングしちゃいましよう!

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です