Swift基礎Part6 クロージャ(無名関数、ラムダ式)


クロージャ

Javaにおけるラムダ式、JavaScriptにおける即時関数。

//基本形
var add:(Int,Int)->Int = {(x:Int,y:Int)->Int in
   return x+y
}

add(1,2)
//ここまで省略できる
var subtract={x,y->Int in x-y}

subtract(4,3)
//戻り型、引数をもたないクロージャ
var sayHello:()->()={()->() in
    print("Hello!")
}

sayHello()

let ary:[Int]=[1,2,3,4,5]

let doubledAry=ary.map({val->Int in val*2})

for value in doubledAry{
    print(value) //2,4,6,8,10
}

私は、この本を使って勉強しています。