In AutoIt 只有一个叫做 Variant(变量) 的数据类型.
一个 Variant(变量) 可以是数字或字符串, 如何使用这些数据要视情况而定.
例如,若试图让两个变量相乘, 则它们将被当作数字类型, 而试图连接(拼合)两个变量,则它们将被视为字符串.
示例:
10 * 20 --- 等于数字 200 (符号 * 用于两个数相乘)
10 * "20" --- 等于数字 200
"10" * "20" --- 等于数字 200
10 & 20 --- 相当于字符串 "1020" (符号 & 用于连接字符串)
如果一个字符串被当作数字使用时,隐含调用 Number() 函数操作.
如果字符串不包含有效的数字, 则它会被假定为等于 0. 例如:
10 * "fgh" --- 结果等于数字 0.
如果字符串被用于布尔运算, 并且字符串为 "" , 则字符串被视为 False (见下文). 例如:
NOT "" --- 等于布尔值 true. ( NOT "" 意为非假,结果即真. )
数字可以是类似 2, 4.566, 与 -7 的标准十进制数字
指数形式也被支持,因此你可以用 1.5e3 代替数字 1500.
整数也可以用十六进制来表示, 只需添加前缀 0x. 例如 0x409 或 0x4fff.
(当使用十六进制表示法时, 只有 32 位数字是有效的).
字符串以一对英文双引号括起来, 比如 "这个". 如果字符串包含双引号, 则需连续两次使用双引号括, 比如:
"这是 ""au3 文件 "" - 对吗?"
您也可以使用单引号代替双引号,例如 '这个' 与 '这是 ' 'au3 文件' ' - 对吗?'
可以混合使用引号类型,已避免出现双重的同一引号.
如果字符串包含大量双引号, 则可以这样使用单引号:
'这个 "句子" 包含 "许多" 的 "双引号", 你看清楚了吗?'
该例使用单引号来括住整个有多个双引号的字符串,看起来就没有下面常规表示方法那么累赘了:
"这个 ""句子"" 包含 ""许多"" 的 ""双引号"",你看清楚了吗?"
计算时, 字符串可以有 Env(环境变量) 或 Var 变量, 根据 Opt() 函数的定义变换.
布尔值是一个逻辑值. 只有两个布尔值存在: true 与
false.
加上布尔运算符 and, or 与 not 时, 它们可以用于给变量赋值.
示例:
$Boolean1 = true
$Boolean2 = false
$Boolean3 = $Boolean1 AND $Boolean2
结果: $Boolean3 为 false
$Boolean1 = false
$Boolean2 = not $boolean1
结果: $Boolean2 为 true
如果布尔值与数字一起使用, 适用以下规则:
数字 0 等于布尔值 false
其他任何数字等于布尔值 true
示例:
$Number1 = 0
$Boolean1 = true
$Boolean2 = $Number1 and $Boolean1
结果 $Boolean2 为 false
如果您使用算术连同布尔值(这是不可取的!), 适用以下规则:
布尔值 true 将被转换成数字值 1
布尔值 false 将被转换成数字值 0
示例:
$Boolean1 = true
$Number1 = 100
$Number2 = $Boolean1 + $Number1
结果返回 $Number2 的值为 101
如果将布尔值转换为字符串, 它们将被转换成:
布尔值 true 将转换为字符串值 "True"
布尔值 false 将转换为字符串值 "False"
示例:
$Boolean1=true
$String1="测试为: "
$String2=$String1 & $Boolean1
结果返回 $String2 的字符串值 "测试为: True"
如果将字符串转换为布尔值,适用下列规则:
空字符串 ("") 将返回布尔值 false
任何其他字符串值(包括等于 “0” 的字符串)将返回布尔值 true
二进制类型可以存储任何字节值. 当存储字符串变量时, 它们被转换为十六进制. 示例:
$bin = Binary("abc")
$str = String($bin) ;返回 "0x616263"
指针类型存储 32 位或 64 位内存地址. 取决于使用的 32 位或 64 位的 AutoiIt 版本.
在一个字符串变量中, 它们被转换为十六进制.
窗口句柄 (HWnd) 就是一个由 WinGetHandle 返回的指针类型.
下表显示内部变量的数据类型和它们的范围.
数据子类型 | 取值范围 |
Int32 | 32 位带符号整数. |
Int64 | 64 位带符号整数 |
Double | 双精度浮点数. |
String | 可以包含多达 2147483647 个字符的字符串. |
Binary | 二进制数据, 可以包含多达 2147483647 字节. |
Pointer | 32 位或 64 位内存地址指针. 取决于使用的 AutoIt 版本. |
AutoIt 的某些函数(例如 BitAND)只能使用 32 位数字,并自动转换 - 在有需要时,这些函数都会备有声明文件.
provider with jb51.net (unicode) |