Types de données - Delphi Pascal


Types de données, variables et constantes (Delphi)



Cette rubrique propose une présentation de haut niveau des types de données Delphi.


A propos des types


Un type est essentiellement le nom d'une sorte de données. Quand vous déclarez une variable, il faut spécifier son type qui détermine l'ensemble des valeurs que la variable peut contenir et les opérations qui peuvent être effectuées. Chaque expression renvoie des données d'un type particulier tout comme les fonctions. La plupart des fonctions et des procédures nécessitent des paramètres ayant un type spécifique.
Le langage Delphi est un langage "fortement typé" : cela signifie qu'il distingue un grand nombre de types de données et ne permet pas toujours de substituer un type de données à un autre. C'est généralement un avantage car cela permet au compilateur de traiter les données intelligemment et de vérifier plus précisément votre code, ce qui évite des erreurs d'exécution difficiles à diagnostiquer. Toutefois, si vous avez besoin d'une plus grande flexibilité, il est possible de contourner la vérification stricte des types. Les solutions possibles sont le transtypage , les pointeurs, les variants, les parties variables dans les enregistrements, et l'adressage absolu des variables.


Il y a plusieurs manières de regrouper les types de données de Delphi :
  • Certains types sont prédéfinis (ou intégrés) ; le compilateur les reconnaît automatiquement sans nécessiter une déclaration. La plupart des types décrits dans cette présentation du langage sont des types prédéfinis. D'autres types sont créés à l'aide de déclarations ; c'est le cas des types définis par l'utilisateur et de ceux définis dans les bibliothèques du produit.
  • Les types peuvent se diviser en types fondamentaux et en types généraux. L'étendue et le format d'un type fondamental sont les mêmes dans toutes les implémentations du langage Delphi, indépendamment de la CPU utilisée ou du système d'exploitation. L'étendue et le format d'un type général sont spécifiques à une plate-forme et peuvent varier selon les implémentations. La plupart des types prédéfinis sont fondamentaux mais certains types d'entiers, de caractères, de chaînes et de pointeurs sont généraux. Il est préférable d'utiliser, dans la mesure du possible, les types généraux car ils permettent des performances optimales et la portabilité du code. Cependant, la modification du format de stockage selon l'implémentation d'un type général peut poser des problèmes de compatibilité, par exemple si vous placez dans un fichier un contenu en tant que données binaires brutes sans information de type et de version.
  • Les types peuvent aussi se diviser en types simple, chaîne, structuré, pointeur, procédure ou variant. De plus, les identificateurs de type même peuvent être considérés comme appartenant à un "type" particulier car ils sont transmis comme paramètres dans certaines fonctions (par exemple High, Low et SizeOf).
  • Les types peuvent être paramétrés, ou génériques. Les types peuvent être génériques dans le sens où ils sont la base d'une structure ou d'une procédure qui opère en concert avec différents types déterminés par la suite.

Le schéma suivant décrit la taxonomie des types de données Delphi.



simple
  ordinal
   integer
   character
   Boolean
   énumération
   sous-intervalle
  real
 string
 structuré
  set
  tableau
  record
  file
  classe
  référence de classe
  interface
 pointeur
 procédure
 Variant
 identificateur de type



La fonction standard SizeOf opère sur toutes les variables et tous les identificateurs de type. Elle renvoie un entier représentant la quantité de mémoire (en octets) nécessaire pour stocker les données du type spécifié. Par exemple, SizeOf(Longint) renvoie 4, car une variable Longint utilise quatre octets de mémoire.

Aucun commentaire: