AutoIt 中只存在一种数据类型,那就是Variant. Variant可用来存储纯数字的或字符串类型的数据, 而程序具体如何看待这些数据则要看用户的使用方式;举例来说,若您试图让两个变量相乘, 那么它们将被当作数字类型(指具有数学意义的可供计算的值)使用, 而若您试图连接(拼合)两个变量则它们将被认做字符串(String类型).
一些例子:
10 * 20 等价于 数字 200 (* 是乘法运算符)
10 * "20" 等价于 数字 200
"10" * "20" 等价于 数字 200
10 & 20 等价于 字符串 "1020" (& 是字符串连接运算符)
若某个字符串被当作数字进行运算,后台调用Number() 后它又并不能表示有效的数值, 则它将被假定为0.例如:
10 * "fgh" 等价于数值 0.
如果一个字符串使用 布尔值 ,假定字符串为空"" , 它的结果为假.见下文.例子:
NOT "" 结果为 布尔值 真 (true).
数字可以是标准的十进制数,2,4.566, 和-7
指数形式也被支持,因此你可以用 1.5e3 来代替 1500.
(说明:字母e或E后面的数表示指数,因此上例等价于1.5*10*10*10,字母e或E之前必须要有数字,而且需用小数表示,e或E后面的指数必须是整数)
整数还可以用十六进制来表示, 但需添加前缀 0x ,如 0x409 或 0x4fff(此时只有32位的数值才是合法的数字)..
字符串以一对英文双引号括起来,比如 "这样". 若需表示一个包含双引号的字符串则需连续两次用双引号括起来,比如:
"这里是一对 ""双引号"" - ok?"
此外还可以用一对单引号括起来以表示字符串,比如 '这样' 和 '这里是一对 ' '单引号'' - ok?'
有时一个字符串包含大量双引号或单引号, 则可以通过混和使用使得对字符串的表示更加简单. 比如下例:
'这个 "句子" 中包含了 "很多" 的 "双引号" ,留意到了吗?'
该例使用了单引号来括住字符串,看起来就没有下面常规的表示方法那么累赘了.
"这个 ""句子"" 中包含了 ""很多"" 的 ""双引号"". 能留意到吗?"
当求值时,字符串可以有一个环境变量或者变量代替 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
(如果含有失败)这个结果将会返回false
如果您计算一个布尔值的算术.(这是不明智的!),
将会返回下面的结果:
如果布尔值为 true 将会转换为数值 1
如果布尔值为 false 将会转换为数值 0
例子:
$Boolean1 = true
$Number1 = 100
$Number2 = $Boolean1 + $Number1
这个$Number2结果将会返回数值 101
如果您使用字符串进行布尔值连接,
将会返回下面的结果:
如果布尔值为 true 将会返回字符串 "True"
如果布尔值为 false 将会返回字符串 "False"
例子:
$Boolean1=true
$String1="Test is: "
$String2=$String1 & $Boolean1
这个结果将会返回字符串"Test is: True"
如果要从反方向来比较布尔值,结果是不同的.
当您使用字符串比较布尔值请使用下面的方法:
只有空字符串("")才能返回布尔值 false
任何其它的字符串(包括字符串等于"0")
都将会返回布尔值 true
Binary 类型可以储存任意字节的值.
当储存时会自动转换为十六进制值(HEX).
例子:
$bin = Binary("abc")
$str = String($bin)
; "0x616263"
指针类型将会存放一个32位或者64位内存地址. 定义于使用的是32位或者64位的AutoiIt. 它们将会被转换 到 一个字符串变量表示的十六进制值. 窗口 句柄 (HWnd) 从 WinGetHandle 返回一个指针类型.
在下方的这个列表中显示了各种变量 有效的范围.
数据子类型 | 范围与说明 |
Int32 | 32位浮点整数. |
Int64 | 64位浮点整数 |
Double | 双精度浮点数. |
String | 可以包含 2147483647 个字符的字符串. |
Binary | 二进制数据, 可以包含 2147483647 字节数据. |
Pointer | 内存地址指针. 32bit 或者 64bit 定义于 使用的 AutoIt 版本. |
一些 AutoIt 内置函数只能工作于 32 位数字(e.g. BitAND) 和其它自动转换的 - 这些函数必须有定义.