2019/12/13 Swift クロージャー パート1(基本)

クロージャの定義方法

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