语言相关 - 数据类型

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 ,如 0x4090x4fff(此时只有32位的数值才是合法的数字).. 

 

字符串类型(String)

字符串以一对英文双引号括起来,比如 "这样".  若需表示一个包含双引号的字符串则需连续两次用双引号括起来,比如:

    "这里是一对 ""双引号"" - ok?"

此外还可以用一对单引号括起来以表示字符串,比如 '这样''这里是一对 ' '单引号'' - ok?'

 

有时一个字符串包含大量双引号或单引号, 则可以通过混和使用使得对字符串的表示更加简单. 比如下例:

    '这个 "句子" 中包含了 "很多" 的 "双引号" ,留意到了吗?'

该例使用了单引号来括住字符串,看起来就没有下面常规的表示方法那么累赘了.

    "这个 ""句子"" 中包含了 ""很多"" 的 ""双引号"". 能留意到吗?"

当求值时,字符串可以有一个环境变量或者变量代替 Opt() 函数定义.

 

布尔值(Booleans)

布尔值是一个逻辑值.只有 true 和 false (真和假).

你可以给一个变量赋值, 使用布尔操作 and, ornot.

例子:
$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)

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) 和其它自动转换的 - 这些函数必须有定义.