Bonjour,
Je voudrais savoir si il existe un langage permettant cela.
Des constantes de types primitives sont disponibles dans de nombreux langages mais en ce qui concerne les objets, je ne connais rien d'équivalent.
Le problème est : ayant défini une classe produisant des objets pouvant être modifiés, est-il possible d'instancier cette meme classe afin de produire un objet que l'on sait inchangeable ?
(En java, le mot clef final ne permet de garantir seulement que ce soit toujours le même objet (plus exactement, la même adresse) qui soit stocké par la meme variable, rien ne garantit donc que les paramètres de cet objet ne changent.
De meme existe-t-il un langage permetttant de spécifier que le résultat d'une fonction est purement lié à ses paramètres ? Autrement dit, cette fonction ne devrait rien changer sur d'autres données dans le programme et retourner un résultat en fonction des paramètres.
Un exemple est min(5,8) que l'on sait constant.
Dernier point, déclarer une fonction comme ne changeant pas les attributs d'un objet (exemple, un accesseur). C'est-à-dire à la fois ne permettant pas de changer la valeur explicitement mais aussi l'appel de fonction pouvant en théorie les modifier.
Voilà, si vous avez des commentaires, des idées, des pistes, vous êtes les bienvenus.
D'avance merci
PS : Bien sur, tout cela peut se coder mais cela risque de produire un résultat lent (dû à la gestion des exceptions) mais il est difficile (voire impossible) d'imposer cette règle et on rique aussi de produire de nombreux bugs...
Partager