Types de valeurs
Chaque variable, argument et résultat contient exactement l'un de cinq types. Une variable n'a pas de type fixe. Elle contient ce qui lui a été affecté en dernier.
| Type | Contient | Provient de | Vrai quand | Affiché sous la forme (StringFormat) |
|---|---|---|---|---|
| Bool | true / false | littéraux, comparaisons, !, &&, ||, de nombreuses fonctions intégrées | il vaut true | true / false |
| Integer | nombre entier signé sur 64 bits | littéraux entiers et hexadécimaux, constantes, arithmétique entière | il ne vaut pas 0 | 42, -7 |
| Real | virgule flottante sur 64 bits | littéraux réels, toute opération arithmétique impliquant un Real | il ne vaut pas 0.0 | toujours six décimales : 0.500000 |
| Text | chaîne Unicode | littéraux de chaîne, + sur deux Text, fonctions intégrées de texte | il n'est pas vide | tel quel |
| Window | un handle de fenêtre (HWND) | WindowGetActive, ContextGetWindow, WindowFindByTitle, … | il n'est pas nul | 0x00000000000A0B2C |
La « valeur de vérité » est la façon dont if, les conditions de for, !, && et || lisent une
valeur qui n'est pas un Bool. Elle permet ces vérifications courantes sans rien comparer :
w = WindowFindByTitle("Calculator");
if (!w) UtilityPrint("Calculator isn't open"); // un handle nul est faux
text = StringTrim(ClipboardGetText());
if (text) UtilityPrint("Clipboard has: " + text); // un Text vide est faux
Il n'existe pas de valeur null, undefined ou « rien ». Une fonction intégrée qui ne trouve rien
renvoie un Text vide, 0, -1, false ou un Window nul, selon son type de retour. Testez celui
qu'elle utilise.