バインド定義


バインド式は、その依存する部分が変化したときに、値を更新する式です。 依存する部分、更新の仕組み、そしてバインド式の作成を以下に述べます。

[To do: 「依存する部分」の定義]

バインド式はバインドの文脈で評価されます。他のすべての評価は一般的な文脈でなされます。 バインド式は割り当てや反復を含みません。 割り当てはインクリメントとデクリメントを含みます。 反復はwhileループ(forではなく)です。

変数(インスタンス、スクリプト、ローカル変数)は、式にバインドさせることができます。 その式はもちろんバインド式です。

初期化式を持つローカル変数定義は、明確なバインドが定義されていれば、 ローカル変数から式へのバインドを作成します。

def varName = bind expression

または、定義がバインドの文脈にあれば同様です。

初期化式を持つスクリプト変数の定義は、明確なバインドが定義されていれば、 インスタンス変数から式へのバインドを作成します。

初期化式を持つインスタンス変数の定義は、明確なバインドが定義されていて、 さらにオブジェクトリテラルの初期化式でオーバーライドも破棄もされていなければ、 インスタンス変数から式へのバインドを作成します。 クラス定義は評価されないので、バインドの文脈を持ちません。 よって明確なバインドの無いインスタンス変数の初期化は、バインドを作成できません。 オブジェクトリテラルの構成は、その構成が明確にバインドしていれば、 インスタンス変数から式へのバインドを作成します。

className { instanceVariableName: bind expression } 

変数と式の間のバインドは、変数が式の値を維持することを直感的に意味します。 具体的には、これは式が依存するものが変化したとき、変数が更新されることを意味します。


Home