恕我直言,将变量绑定到另一个变量或表达式是数学中非常普遍的情况。实际上,在一开始,许多学生认为赋值运算符(=)是某种绑定。但是在大多数语言中,不支持将绑定作为本机功能。在某些语言(例如C#)中,在满足某些条件的情况下,某些情况下支持绑定。
但是恕我直言,将其作为本机功能实现就像更改以下代码一样简单-
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 + b,总和将永远是a + b。
希望这个想法现在更加清晰。
更新2:
我只是想要这个P#功能。希望将来会出现。