Appleがこれを言う:クロージャとファーストクラスの機能の差を速くしますか?スウィフトドキュメントで
クロージャは周り に合格し、あなたのコード内で使用可能な機能の自己完結型ブロックです。 Swiftのクロージャは、CおよびObjective-Cのブロック 、および他のプログラミング言語のラムダに似ています。
クロージャは、それらが定義されている文脈から任意の定数と 変数への参照をキャプチャして保存することができます:私はFirst-class functions
の定義だったと、彼らはまた、これを言うと思った
。これらの定数と変数を閉じると、これは として知られています。 Swiftはあなたのためのキャプチャのメモリ管理のすべてを処理します。
私はこれが閉鎖の定義であると考えていましたが、他の定義はファーストクラスの機能だと思っていましたが、Appleはそれらをまとめて閉鎖と呼んでいるようです。
私は何か誤解しましたか?またはアップルはクロージャとファーストクラスのクロージャを呼びますか?
私はこのサンプルコードを書いていますが、私が書いたコメントに正しいかどうかを知りたいのですか?
// 'a' takes a first class function, which makes 'a' a higher order function
func a(ch:() -> Void){
print("Something")
ch() // 'ch' is a first class function
print("Ended")
}
func closureFunc(){
var num = 2
a({
// access to 'num' is possible by closures
num = num*2
print(num)
})
}
closureFunc()
すべてがよさそうだ - 。クロージャは 'self.'(明示的である必要があります)を含む、それらの外側のパラメータを、つかむことができます。 http://stackoverflow.com/questions/29022985/how-to-comprehend-the-first-class-function-in-swift?rq=1 – sschale
あなたの質問が満足されたと感じる場合は、回答のうち – Alexander