Tipos de valor
Toda variável, todo argumento e todo resultado contém exatamente um de cinco tipos. Uma variável não tem tipo fixo. Ela contém o que foi atribuído a ela por último.
| Tipo | Contém | Vem de | Verdadeiro quando | Exibido como (StringFormat) |
|---|---|---|---|---|
| Bool | true / false | literais, comparações, !, &&, ||, muitas funções internas | é true | true / false |
| Integer | número inteiro de 64 bits com sinal | literais inteiros e hexadecimais, constantes, aritmética de inteiros | não é 0 | 42, -7 |
| Real | ponto flutuante de 64 bits | literais reais, qualquer aritmética que envolva um Real | não é 0.0 | sempre seis casas decimais: 0.500000 |
| Text | cadeia Unicode | literais de cadeia, + entre dois Texts, funções internas de Text | não é vazio | como está |
| Window | um identificador de janela (HWND) | WindowGetActive, ContextGetWindow, WindowFindByTitle, … | não é nulo | 0x00000000000A0B2C |
"Verdadeiro" (truthy) é como as condições de if e for, !, && e || leem um valor que não é
Bool. Isso faz estas verificações do dia a dia funcionarem sem comparar com nada:
w = WindowFindByTitle("Calculator");
if (!w) UtilityPrint("Calculator isn't open"); // identificador nulo é falso
text = StringTrim(ClipboardGetText());
if (text) UtilityPrint("Clipboard has: " + text); // Text vazio é falso
Não existe valor null, undefined nem "nada". Uma função interna que não encontra nada retorna um Text
vazio, 0, -1, false ou um Window nulo, conforme o seu tipo de retorno. Verifique o que ela usa.