IMHO lier une variable à une autre variable ou une expression est un scénario très courant en mathématiques. En fait, au début, de nombreux étudiants pensent que l'opérateur d'affectation (=) est une sorte de liaison. Mais dans la plupart des langues, la liaison n'est pas prise en charge en tant que fonctionnalité native. Dans certains langages comme C #, la liaison est prise en charge dans certains cas avec certaines conditions remplies.
Mais à mon humble avis, la mise en œuvre de cette fonctionnalité en tant que fonctionnalité native était aussi simple que la modification du code suivant:
int a,b,sum;
sum := a + b;
a = 10;
b = 20;
a++;
pour ça-
int a,b,sum;
a = 10;
sum = a + b;
b = 20;
sum = a + b;
a++;
sum = a + b;
Cela signifie placer l'instruction de liaison en tant qu'affectations après chaque instruction modifiant les valeurs de l'une des variables contenues dans l'expression à droite. Après cela, le découpage des instructions redondantes (ou l'optimisation dans l'assemblage après la compilation) fera l'affaire.
Alors, pourquoi il n'est pas pris en charge nativement dans la plupart des langues. Spécialement dans la famille C des langues?
Mettre à jour:
De différentes opinions, je pense que je devrais définir plus précisément ce "contraignant" proposé.
- Ceci est contraignant à sens unique. Seule la somme est liée à a + b, pas l'inverse.
- La portée de la liaison est locale.
- Une fois la liaison établie, elle ne peut plus être modifiée. Autrement dit, une fois que sum est lié à a + b, sum sera toujours a + b.
J'espère que l'idée est plus claire maintenant.
Mise à jour 2:
Je voulais juste cette fonctionnalité P # . J'espère qu'il sera là à l'avenir.