Swift,Objective-Cプログラミング ~ iOS ~

Objective-C,Swift,Apple Watchなどのプログラミング

【iOS Swift入門 #216】関数プログラミング その1(配列のfilter)

特定の条件を満たす配列の要素だけを別の配列として抽出する。
filter関数を利用する。

■1から10の数値から奇数の数値を抽出する
関数プログラミングを使わない

var odds = [Int]()
for i in 1...10{
    // 2で割ったあまりが1なら奇数ですね。
    if i % 2 == 1{
        odds.append(i)
    }
}
// 結果を出力
println(odds)

※結果(Playground画面)
f:id:fjswkun:20150627123004p:plain

関数プログラミングを使った場合

// fileter関数を使って奇数を抽出
var odds = Array(1...10).filter{(number) in number % 2 == 1}

// 結果を出力
println(odds)

※結果(Playground画面)
f:id:fjswkun:20150627123122p:plain

・奇数を判断する処理を関数化して、関数プログラミングする

// 数値が奇数であればtrue。そうでなければ、falseを返す関数
func isOdd(number: Int) -> Bool{
    return number % 2 == 1
}

// 作成した関数を使ってフィルタ
var odds = Array(1...10).filter(isOdd)

// 結果を出力
println(odds)

※結果(Playground画面)
f:id:fjswkun:20150627123234p:plain

関数プログラミングのメリット
上の例から関数プログラミングのメリットを考えると、
・if文やループ処理が少なくなり、ソースがわかりやすくなる
・奇数か偶数かを判断する処理を再利用可能になったこと


【参考情報】
iOSアプリ開発未経験の人向け
iOSアプリ開発をはじめたとき最初に買った書籍
【アプリ作成未経験の人向け】
Storyboardを使って画面を作成していく。
手順にしたがって操作していくと、ボタンの作成やWebViewの作成などができる。
アプリって、こんな感じで作るんだというのを体験できる。

Swiftではじめる iPhoneアプリ開発の教科書 【iOS 8&Xcode 6対応】 教科書シリーズ

・わかりやすくていい、と聞いた本
立ち読みした感じだと【アプリ作成未経験の人向け】

絶対に挫折しない iPhoneアプリ開発「超」入門【Swift & iOS8.1以降 完全対応】

②を終えたくらいの知識の方向け
・アプリ開発独学中に2冊めに購入した書籍
プログラミング知識はなくても、若干理解するのに時間がかかる程度で、
読み進められるわかりやすさがある。


iPhoneアプリ開発塾

③中級者、上級者向け
詳解 Swift

楽天ブックス】で見る方は
こちら

③その他
その他もろもろ