Перейти к основному содержимому

Типы значений

Каждая переменная, аргумент и результат содержит значение ровно одного из пяти типов. У переменной нет фиксированного типа. Она содержит то, что ей присвоили последним.

ТипСодержитОткуда берётсяИстинно, когдаКак показывается (StringFormat)
Booltrue / falseлитералы, сравнения, !, &&, ||, многие встроенные функцииравно truetrue / false
Integer64-битное целое число со знакомцелые и шестнадцатеричные литералы, константы, целочисленная арифметикане равно 042, -7
Real64-битное число с плавающей точкойвещественные литералы, любая арифметика с участием Realне равно 0.0всегда шесть знаков после запятой: 0.500000
Textстрока Юникодастроковые литералы, + над двумя Text, встроенные функции для текстане пустокак есть
Windowдескриптор окна (HWND)WindowGetActive, ContextGetWindow, WindowFindByTitle, …не пустой0x00000000000A0B2C

«Истинность» — это то, как if, условия for, !, && и || читают значение, не являющееся Bool. Благодаря ей повседневные проверки работают без сравнения с чем-либо:

w = WindowFindByTitle("Calculator");
if (!w) UtilityPrint("Calculator isn't open"); // пустой дескриптор ложен

text = StringTrim(ClipboardGetText());
if (text) UtilityPrint("Clipboard has: " + text); // пустой Text ложен

Значений null, undefined или «ничего» нет. Встроенная функция, которая ничего не нашла, возвращает пустой Text, 0, -1, false или пустой Window, в зависимости от типа результата. Проверяйте то значение, которое она использует.