Les variables en KC3 peuvent être définies à l'aide de la valeur
littérale ?
, qui représente une variable non initialisée. Vous
pouvez appliquer un cast à cette valeur, ce qui ne la convertit pas
réellement, mais permet de créer une variable typée. Par exemple :
(List) ?
.
Cette valeur littérale typée ne pourra être affectée qu'une seule fois, et uniquement avec une valeur correspondant au type de la variable, dans cet exemple, une liste chaînée.
Il s'agit en réalité d'une syntaxe, ce qui signifie que vous ne
pouvez pas renommer ?
par erreur, et cela facilite l’analyse
statique de la création des variables.
Le type par défaut d'une variable, que vous pouvez aussi spécifier
explicitement, est Tag
, qui est une union étiquetée de tous les
types KC3 définis dans l’environnement. Ainsi, ?
est strictement
équivalent à (Tag) ?
, et les deux peuvent recevoir une unique
valeur de n'importe quel type.
Une variable ne peut être affectée qu'une seule fois et ne peut pas être modifiée ensuite (à moins d’écrire du code C et de le lier, mais cela est ni simple ni silencieux).
Grâce à cela, vous n'avez pas besoin de mécanismes de verrouillage ou de protection : une fois qu’une variable est initialisée, sa valeur ne change plus. Elle devient véritablement en lecture seule.
Vous pouvez utiliser l’opérateur d’assignation <-
, qui appelle en
interne tag_init_copy
. Il fonctionne comme l’opérateur =
en C.
# Déclare une variable "x" de type entier non signé 8 bits.
x = (U8) ?
# Affecte la valeur zéro à la variable "x".
x <- 0
# Alloue à nouveau une variable "x"
x = (U8) ?
# Affecte encore la valeur zéro à la nouvelle variable "x"
x <- 0
Top : Documentation KC3
Précédent : 1.23 Tuple
Suivant : 1.25 Faits