ほとんどの言語でバインディングがネイティブ機能ではないのはなぜですか?
変数を別の変数または式にバインドするIMHOは、数学の非常に一般的なシナリオです。実際、最初は、多くの学生が割り当て演算子(=)が何らかの拘束力を持つと考えています。しかし、ほとんどの言語では、バインディングはネイティブ機能としてサポートされていません。C#などの一部の言語では、いくつかの条件が満たされている場合にバインドがサポートされる場合があります。 しかし、これをネイティブ機能として実装するIMHOは、次のコードを変更するのと同じくらい簡単でした。 int a,b,sum; sum := a + b; a = 10; b = 20; a++; これに int a,b,sum; a = 10; sum = a + b; b = 20; sum = a + b; a++; sum = a + b; 右側の式に含まれる変数の値を変更するすべての命令の後に、割り当て命令としてバインディング命令を配置することを意味します。この後、冗長な命令のトリミング(またはコンパイル後のアセンブリの最適化)が行われます。 そのため、ほとんどの言語でネイティブにサポートされていない理由。特にCファミリーの言語ですか? 更新: さまざまな意見から、この提案された「バインディング」をより正確に定義すべきだと思います。 これは一方向のバインディングです。合計のみがa + bにバインドされ、その逆はありません。 バインディングのスコープはローカルです。 バインドが確立されると、変更できません。つまり、合計がa …