クロージャの定義方法
sample1
let triple={(x:Int)->Int in return x*3 } print(triple(300)) //900
returnキーワードの後に戻り値の式を記述するのが基本だが、クロージャ内の文が1つの場合returnキーワードは省略可能。上記のsample1は次のように書き換え可能。
sample1-1
let triple={(x:Int)->Int in x*3 //文が1つしかないのでreturnを省略できる。 } print(triple(300)) //900
returnを省略できるのはクロージャのブロック内({}の中)の文が1つの場合のみ。文が2つ以上でreturnを省略するとエラーが出るので注意。
引数の型をクロージャ型として宣言する(型注釈)場合
クロージャの型は
で表現する。
sample2
let triple:(Int)->Int ={(x:Int)->Int in return x*3 } print(triple(500))
上記sample2では定数tripleの型注釈として(Int)->Int型(クロージャ型)としている。
sample3
let triple:(Int)->Int={(x:Int)->Int in return x*3…