语言参考 - 数据类型

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. 例如 0x4090x4fff.

(当使用十六进制表示法时, 只有 32 位数字是有效的). 

 

字符串

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

    "这是 ""au3 文件 "" - 对吗?"

您也可以使用单引号代替双引号,例如 '这个''这是 ' 'au3 文件' ' - 对吗?'

 

可以混合使用引号类型,已避免出现双重的同一引号.

如果字符串包含大量双引号, 则可以这样使用单引号:

    '这个 "句子" 包含 "许多" 的 "双引号", 你看清楚了吗?'

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

    "这个 ""句子"" 包含 ""许多"" 的 ""双引号"",你看清楚了吗?"

计算时, 字符串可以有 Env(环境变量) 或 Var 变量, 根据 Opt() 函数的定义变换.

 

布尔值

布尔值是一个逻辑值. 只有两个布尔值存在: truefalse.
加上布尔运算符 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

结果 $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

二进制(Binary)

二进制类型可以存储任何字节值. 当存储字符串变量时, 它们被转换为十六进制. 示例:
$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)