值类型
每个变量、参数和结果都恰好持有五种类型之一。变量没有固定的类型,它持有最后一次赋给它的值。
| 类型 | 持有内容 | 来源 | 何时为真值 | 显示形式(StringFormat) |
|---|---|---|---|---|
| Bool | true / false | 字面量、比较、!、&&、||、许多内置函数 | 值为 true | true / false |
| Integer | 64 位有符号整数 | 整数和十六进制字面量、常量、整数算术 | 不为 0 | 42、-7 |
| Real | 64 位浮点数 | 实数字面量、任何涉及 Real 的算术 | 不为 0.0 | 始终显示六位小数:0.500000 |
| Text | Unicode 字符串 | 字符串字面量、对两个 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。请检查它所使用的那一种。