Constantes typées
Dans le cas des constantes typées, le type de données est également spécifié dans la déclaration. La forme générale d'une telle constante est:
Exemples:const Name : Typ = valeur;
Les constantes typées peuvent également être formées à partir de types tableau, enregistrement, objet, pointeur et procédure. Pour les types tableau, les valeurs des éléments individuels sont listées entre parenthèses, par exemple:const max : integer = 999; eps : real = 1e-18; hello : string[11] = 'Hello world'; lettres : set of char = [ 'A' .. 'Z', 'a' .. 'z' ];
Pour les types enregistrement et objet, le nom de champ de l'élément concerné doit être spécifié. Exemple:const tableau : array [ 0 .. 3 ] of byte = ( 0, 2, 3, 1 ); matrix : array [ 1 .. 3 , 1 .. 4 ] of real = ( ( 1.0, 0.0, 0.0, 0.0 ), ( 0.0, 1.0, 0.0, 0.0 ), ( 0.0, 0.0, 1.0, 0.0 ) );
Dans le cas des types objets, aucune valeur n'est spécifiée pour les méthodes.type Donnee = record jour: 1..31; mois: 1..12; annee: integer; end; const termin : Donnee = (jour: 12; mois: 6; annee: 1992);
Pour les types pointeur, la valeur nil ou l'adresse d'une variable globale ou d'une constante typée peuvent être spécifiées. Exemple:
Pour les types Procédure et Fonction, le nom d'une procédure ou d'une fonction compatible doit être spécifié. Exemple:type Pointeurdenom = ^Entreedenom Entreedenom = record suivant: Pointeurdenom; nom: ^string; end; const hugo : string = 'Hugo'; entree : entreedenom = (suivant : nil; name : @hugo);
Les constantes typées dans Pure Pascal ne sont pas vraiment constantes - vous pouvez également leur attribuer des valeurs (pour des raisons de compatibilité avec Turbo Pascal). Cependant, nous déconseillons de telles pratiques - les constantes ne doivent pas changer, et si des variables initialisées sont nécessaires, celles-ci doivent être initialisées dans la partie d'initialisation de l'unité concernée.type FatalProc = procedure(errorMessage : string); procedure FatalError(errorMessage : string); begin writeln(errorMessage); Halt(1); end; const fatalErrorHook : FatalProc = FatalError;