2
クロージャとネストクロージャの違いは何ですか?例の良い説明が役に立つでしょう。クロージャとネストクロージャの違いは何ですか?
クロージャとネストクロージャの違いは何ですか?例の良い説明が役に立つでしょう。クロージャとネストクロージャの違いは何ですか?
変数の範囲とそれらがバインドされている環境。
そして、どのようにハード彼らは呼ばClosureB内側その後、閉鎖にバインドされているローカルスコープLAと親スコープPAは、だ :)
ClosureAがそれに結合させることができるコンパイラに実装している(潜在的に) LB、LA、PA
func a(v1,v2,v3){
closure_b(bv1, bv2, bv3) { # Closure
b_local1 = bv1
b_local2 = v1 # parent scope
closure_c(cv1, cv2) { # Nested closure has 'closure_b's scope too
c_local1 = cv1
c_local2 = bv1 # direct-parent scope
c_local3 = v1 # parent's parent scope (nesting)
c_local4 = b_local2
}
return closure_c;
}
return closure_b(); # closure_b() returns closure_c
}
私はreturn文までコード内のすべてを追跡します。私はclosure_cがclosure_bの外でアクセス可能だとは思わなかった。 closure_cが関数fの範囲からどのように返されるのか説明できますか?または、この例のreturn文が間違っていますか? – adamjcooper
私の場合はタイプミスが修正されます。 –
参考にしていただきありがとうございます。 – adamjcooper