MagPI 11 Page 29

De Le French MagPi
Aller à : Navigation, rechercher

comme délimiteur entre les mots composant le nom de la constante. Son type dépend de la valeur qui lui est assignée comme ceci (en notation BNF) :

  • [true | false] - booléen
  • '?' - caractère par exemple 'Q'
  • [+ | -] [0 - 9]+ - entier par exemple -123
  • [+ | -] [0 - 9]+ . [0 - 9]+ [e [+ | -] [0 - 9]+] - réel par exemple 2.345e-6

Les préfixes hex et bin précisent que les constantes sont codées en bases hexadécimale ([0 - 9, A - F]+) ou binaire ([0 - 1]+), par exemple hex 20 ou bin 100000 pour le caractère espace.


Les caractères non imprimables non inclus dans le langage Charm peuvent être spécifiés en les échappant avec le caractère '\' :


  • '\t' - tabulation
  • '\n' - retour chariot
  • '\\' - antislash

Les constantes peuvent contenir des expressions, celles-ci pouvant faire référence à d'autres constantes à condition qu'elles puissent être résolues lors de la compilation :


const LIGNES = 4, COLONNES = 6, 
CELLULES = LIGNES * COLONNES;

Il est possible de déclarer des listes de constantes avec le mot-clé list. Des nombres sont attribués implicitement à chaque position depuis 1 jusqu'au nombre d'éléments :

list ROUGE, VERT, BLEU;


attribue dans l'ordre les valeurs 1, 2 et 3 aux constantes ROUGE, VERT et BLEU. C'est particulièrement utile pour faire une énumération pour définir un ensemble fini de valeurs distinctes mais associées, par exemple pour les étiquettes des structures case.



Variables

Une variable doit être déclarée avant de pouvoir être utilisée. La déclaration se compose d'un nom (en minuscules par convention, les mots séparés par un souligné et avec un z au début pour les pointeurs) et d'un type. Elle peut avoir un type de base ou un type plus complexe, dérivé d'un type de base selon différents moyens :


  • par agrégation homogène avec le mot-clé array.
  • par agrégation hétérogène avec le mot-clé record ou des déclarations de données dynamic du niveau module.
  • grâce au mot-clé ref en préfixant une variable d'un certain type pour créer une référence (ou pointeur) vers elle.

Les tableaux sont des ensembles de données accessibles grâce à un index de 0 à la taille du tableau moins un, indiqué entre crochets, i.e. variable [ index ]. L'index doit produire un type entier.


Les enregistrements sont des ensembles de champs typés, chacun avec un nom unique à l'intérieur de l'espace de nom, l'accès se faisant donc sous la forme <nom enregistrement>.<nom champ> où par convention la casse du chameau est utilisée pour le nom d'enregistrement. De la même façon, les données de modules dynamiques sont notées <réf nom module>.<nom variable>, où la référence du nom de module peut être this si elle est à l'intérieur d'une procédure dynamic.

Les variables de type pointeur ref sont automatiquement déférencées par Charm lors de l'accès à la variable désignée. Les variables de type complexe sont toujours passées par référence aux procédures même si elles peuvent être directement déclarées comme variables statiques ou non. Alors que le mot-clé proc introduit le code de la procédure, il est possible de déclarer des variables de type ref proc qui pointent sur des procédures et de les exécuter via leurs pointeurs si une signature valide leur est associée. Comme les procédures peuvent éventuellement

Outils personnels
Espaces de noms

Variantes
Actions
Navigation
Boîte à outils