Syntaxe
Donne un type à une variable ou à un tableau. Dès lors, chaque valeur rangée dedans est convertie dans ce type.
[GLOBAL | LOCAL] <name> AS <type> [= <value>]
[GLOBAL | LOCAL] <name> AS <type>[] [= [<value>, …]]
[GLOBAL | LOCAL] <name> AS <type>[<size>[, <size>…]] [= [<value>, …]]
DIM <name>(<size>) AS <type>
<name>.<suffix> = <value>S’écrit aussi : integer, string, byte, int64
Les éléments
| <name> | Le nom de la variable, sans sigil : name$ AS string compile, mais le programme ne démarre pas. |
|---|---|
| <type> | Un nom de type, sans tenir compte de la casse : int8 (byte), uint8 (ubyte), int16 (word), uint16, int32 (integer, long), uint32, int64 (quad), uint64, float32 (float), float64 (double), string, handle, taskhandle, ou un nom de TYPE. |
| <value> | Valeur de départ facultative, convertie dans le type. Sans elle, un nombre part de 0, un texte de "", une référence de NULL. |
| <size> | Le dernier indice valide d'une dimension. AS <type>[] sans taille crée un tableau vide (.length vaut -1). |
| <suffix> | Un type PureBasic d'une lettre : b a w u c l i q f d s. Le premier name.f = 1.5 déclare la variable comme avec AS. |
À savoir
- Le type agit à chaque écriture :
=,+=,-=,*=,/=,INCetDEC. Les types entiers coupent les décimales (vers zéro) et bouclent hors de leur plage ; un texte fait de chiffres est lu, un autre texte arrête le programme. floatest sur 32 bits, comme en AGK :0.1se relit0.10000000149011612. Prenezdoublepour des décimales nettes.longest aussi sur 32 bits : leLong64 bits de Visual Basic s'écritquad.x AS byteetx AS stringécrits sans valeur perdent leur type : la variable reste sans type. Écrivezx AS byte = 0,x AS string = "", ou utilisezint8. Même chose pourint,pointeret les autres noms signalés dans le manuel.- Les valeurs
int64ne se mélangent qu'avec d'autres variables 64 bits :y = big + 1vers unysans type arrête le programme. Un littéral au-delà de 9007199254740991 s'écrit en texte :"9223372036854775807". - Un compteur de FOR typé ne boucle pas pendant la boucle.
DIM x AS integersans taille compile, mais le programme ne démarre pas. Écrivezx AS integer.
Exemple
lives AS integer = 7.9hits AS uint8 = 250hits = hits + 10title AS string = "Hero"price AS float = 0.1exact AS double = 0.1big AS int64 = "9223372036854775807"Console(Str(lives) + " " + Str(hits) + " " + title) ' 7 4 HeroConsole(Str(price) + " " + Str(exact)) ' 0.10000000149011612 0.1Console(Str(big)) ' 9223372036854775807Dans le manuel : Variables et types