ИМХО привязка переменной к другой переменной или выражению - очень распространенный сценарий в математике. Фактически, в начале, многие студенты думают, что оператор присваивания (=) является своего рода связыванием. Но в большинстве языков привязка не поддерживается как встроенная функция. В некоторых языках, таких как 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;
Это означает размещение инструкции привязки в качестве присваиваний после каждой инструкции, изменяющей значения любой переменной, содержащейся в выражении справа. После этого будет выполнено обрезание избыточных инструкций (или оптимизация сборки после компиляции).
Итак, почему это не поддерживается изначально в большинстве языков. Особенно в С-семействе языков?
Обновить:
С разных точек зрения, я думаю, что я должен определить это предложенное «обязательное» более точно -
- Это один из способов связывания. Только сумма связана с a + b, а не наоборот.
- Область привязки является локальной.
- После того как привязка установлена, ее нельзя изменить. То есть, если сумма связана с a + b, сумма всегда будет a + b.
Надеюсь, идея прояснилась.
Обновление 2:
Я просто хотел эту функцию P # . Надеюсь, что это будет там в будущем.