危機感を持った理系学生のプログラミング日記
こんばんわ🦊
プログラミングは慣れなので、毎日少しでもいいから触るのをモットーに日々過ごしています。
そんなこんなで今日はクロージャについて少し書こうと思います。
クロージャとは
クロージャとは、一言で言うと名前がない関数のことです。
変数や引数に関数の中身を直接代入できるため、グローバル変数の宣言をなるべく減らしたい場合や、関数の実行結果を次の処理で続けて使用する関数を作成したい場合に使用します。
クロージャの書き方
クロージャは以下の基本フォーマットのように関数名を付けず引数、処理、戻り値を定義します。
{(引数名:引数の型) -> (戻り値の型) in
処理
return 戻り値
}
例:
{(arg:Int) -> Int in
arg += arg
return arg
}
以下のコードは、Int型の引数を2つとクロージャを引数に関数を呼び出し、関数の中でクロージャを実行するものです。
func calcPrice(a:Int, b:Int , total:(Int,Int) -> Int){
print(total(a, b))
}
calcPrice(a:100, b:10, total:{(a:Int, b:Int) -> Int in return a * b})
関数の中でクロージャを実行して
クロージャで関数を呼びだし?
ややこしいですね。。。
でも今後も出てくると思うので慣れようと思います。
参考サイト