Swiftでの関数プログラミング

クロージャ

まずは引数にクロージャを渡すやり方から。

Stringを引数にとり、Boolを返すクロージャを受け付ける関数は以下の通り。

func doClosure(closure:((arg:String) -> Bool)) {
  val result:Bool = closure("this is argument.")
}

リスト処理

次に、mapとfilter。

例えば属性nameを持つクラスPersonのリストArray<Person>から、nameの値のみのリストArray<String>を抽出するにはmapを利用します。

let personList:Array<Person> = getPersonList()
let nameList:Array<String> = personList.map({
  (person:Person) -> String in
    return person.name
})

さらに、名前がTanakaから始まる人を抽出するには、filterを用いて以下の通り。

let tanakaNameList:Array<String> = nameList.filter({
  (name:String) -> Bool in
    return startsWith(name, "Tanaka")
})

組み合わせると、こんな感じ。

let personList:Array<Person> = getPersonList()
let tanakaNameList:Array<String> = personList.map({
  (person:Person) -> String in
    return person.name
}).filter({
  (name:String) -> Bool in
    return startsWith(name, "Tanaka")
})

AWSを利用した導入事例のご紹介

実際に構築を行ったAWSの事例を紹介しています。導入の目的に近い事例をご覧いただくと、実際の構成例やメリット、注意点などが把握できます。

ブックオフコーポレーション株式会社様
第一生命保険株式会社様
株式会社電通様
株式会社LIFULL様
株式会社リブセンス様
TBSアナウンス部様
明治大学様
拓殖大学様