L'inférence de type est-elle vraiment votre amie ?

L'inférence de type ("type inference") a été ajoutée à l'implémentation du Pascal dans Delphi avec la version 10.3 Rio en 2018. Cette fonctionnalité permet de déclarer des variables sans en donner le type à condition de l'associer directement avec une autre variable ou une valeur typée.

L'inférence de type est utilisable uniquement pour la déclaration de variables en ligne ("inline var") également introduite dans la version 10.3 Rio de Delphi.

On peut désormais avoir des déclarations de variable en dehors des blocs de déclaration, en plein code source sous forme de variable de boucle for ou de variable déclarée. La portée de ces variables est limitée à leur bloc de code à partir de la déclaration.

Sur le papier c'est plutôt sympa et bien pratique mais attention : dans certains cas les compilateurs ne voient pas les choses de la même façon.

Voici un exemple tout bête :

var Nb := 12.5;

Selon la plateforme Nb sera de type Extended ou de type Currency. Selon ce que vous en faites réellement ça peut avoir un impact sur les résultats de vos calculs.

L'exemple TypeInferenceOnADecimalValue le démontre. Compilez le sous Windows en 32 et 64 bits pour voir les différences.


Mug Chinese New Year 2023 : year of the rabbitMug Toucan DX dans la baie de Rio