Tipos de valor
Cada variable, argumento y resultado contiene exactamente uno de cinco tipos. Una variable no tiene un tipo fijo. Contiene lo último que se le asignó.
| Tipo | Contiene | Procede de | Verdadero cuando | Se muestra como (StringFormat) |
|---|---|---|---|---|
| Bool | true / false | literales, comparaciones, !, &&, ||, muchas funciones integradas | es true | true / false |
| Integer | número entero con signo de 64 bits | literales enteros y hexadecimales, constantes, aritmética de enteros | no es 0 | 42, -7 |
| Real | punto flotante de 64 bits | literales reales, cualquier operación aritmética con un Real | no es 0.0 | siempre con seis decimales: 0.500000 |
| Text | cadena Unicode | literales de cadena, + sobre dos Text, funciones integradas de texto | no está vacío | tal cual |
| Window | un identificador de ventana (HWND) | WindowGetActive, ContextGetWindow, WindowFindByTitle, … | no es nulo | 0x00000000000A0B2C |
La “veracidad” es la forma en que if, las condiciones de for, !, && y || leen un valor que
no es Bool. Hace que estas comprobaciones cotidianas funcionen sin comparar con nada:
w = WindowFindByTitle("Calculator");
if (!w) UtilityPrint("Calculator isn't open"); // un identificador nulo es falso
text = StringTrim(ClipboardGetText());
if (text) UtilityPrint("Clipboard has: " + text); // un Text vacío es falso
No hay un valor null, undefined ni “nada”. Una función integrada que no encuentra nada devuelve un
Text vacío, 0, -1, false o una ventana nula, según el tipo que devuelve. Compruebe el que use.