私は、ブロックは第一級関数に似ていて、ラムダ式の計算スタイルの構造を可能にするはずだという印象を受けていました。しかし、以前の質問から、それらは実際には単なるオブジェクトであると言われました。
それから私は本当に2つの質問があります:
それらの定義スコープにアクセスできるという機能に加えて、C++ の「友情」に似た方法でそれらを使用できると思いますが、なぜオブジェクトではなくブロックを使用するのでしょうか? 彼らはより軽量ですか?そうでない場合は、ブロックの代わりにオブジェクトをパラメーターとして渡し続ける可能性があるためです。
ブロックには内部状態を維持する方法がありますか? たとえば、呼び出し間で値を保持するブロック内で宣言された変数。