Swiftでいこう -- Closureとは
Closureとは関数を単純化、簡単に表記してコードを簡潔にわかりやすくする仕組み。
数字の並び替えを題材に考えてみましょ。
例えば
let num = [4, 2, 1, 3, 5]
配列があります。
これを大きいもの順に並び替えたいとします。コードとしては簡単に
num.sorted(by: > )
と書け、実行結果は
[5, 4, 3, 2, 1]
と並び替えできる。
この仕組みClosureで説明していくと。
まず関数としては
func backward(_ s1:Int, _ s2:Int)->Bool{
return s1 > s2
}
が基本になります。
次にreverseNumに並び替えをいれていきます。
var reversedNum = num.sorted(by:backward)
単純化していきます。
基本は
{ (parameters) -> return type in
statements
}
で、"backward"の部分を単純化したものに変えます。
reversedNum = num.sorted(by: {(s1:Int,s2:Int)->Bool in
return s1 > s2
})
"{(s1:Int,s2:Int)->Bool in
return s1 > s2" の部分ですね。
}
どんどん省略していきます。
reversedNum = num.sorted(by:{s1,s2 in return s1 > s2 })
reversedNum = num.sorted(by:{s1,s2 in s1 > s2})
reversedNum= num.sorted(by:{$0 > $1})
reversedNum = num.sorted(by: >)
ついに">"のみになりました。コードもずいぶんすっきりしましたね。
この記事が気に入ったらサポートをしてみませんか?