返回介绍

Keyword Dim / Global / Local / Const

发布于 2020-03-05 18:21:26 字数 2239 浏览 1141 评论 0 收藏 0

Dim / Global / Local / Const

声明一个变量、全局变量、局部变量、(多维)数组或常数。

Dim [Const] $变量名
Dim $数组名[下标 1]...[下标 n]

参数

const[可选参数] 若此关键字出现在声明语句中则创建的将是常量而不是变量。
$变量名要声明的变量名
下标要创建的数组中每一维的元素数量,从 0 到 n-1。

注意

关键字 Dim/Local/Global 的作用非常相识
1. 都必须先声明后使用(类似于 VBScript)
2. 都可以创建数组

注意:在 AutoIt 中您可以简单地对一个(并不存在的)变量赋值即可同时创建该变量(比如 $myvar = 0),但人们一般更喜欢显式地声明它们。

在同一行上同时声明多个变量地方法如下所示:

Dim $a, $b, $c


非数组型变量还可以在声明的同时进行初始化:

Dim $a = 2, $b, $c = 20



常量可有如下几种方式声明:

Dim Const $a, $b, $c
Const $a, $b, $c
Const $a = 2, $b, $c = 20
Local Const $a, $b, $c


常量一旦被声明则不能再修改它的值。此外也不能把已存在的变量转换为常量。



Dim/Local/Global 这三者的不同之处在于其声明变量的作用域:
Dim = 如果同名的全局变量并不存在则作用域为局部(如果已有同名的全局变量存在则将复用该变量!)
Global = 将某些变量的作用域强制转换为全局的
Local = 将某些变量的作用域强制转换为 局部/函数 的

在使用变量时程序将首先检查其局部作用域然后再检查其全局作用域。

创建数组时有一个限制:数组最大只能达64维 和/或 共1600万个元素。

关于数组,有一点比较特别,那就是数组允许被(整体)复制,比如:
$mycopy = $myarray
在上例中,$mycopy 将成为数组 $myarray 的一份完整副本并具有同样地维数(不需要事先通过 Dim 语句声明它)。如果变量 $mycopy 本身就已经是数组或已被赋值,则程序将先把它的内容删除随后再执行复制动作。

如果要删除某个数组(比如某个全局数组存储地内容非常大,可能我们就需要把它删除以释放内存空间),只需参考下例对该数组进行赋值即可:
$array = 0
这样之后该数组所占空间将被释放,同时它的值变成 0。

在使用 Dim 语句声明变量时若该变量已经存在则该变量将被删除,同时其维数将被重设为新定义的。

相关

UBound, ReDim

示例

; 示例 1 - 声明变量
Dim $x, $y = 23, $z
Global $PI = 3.14159, $RADIUS
Local $daysWorking = 5

; 示例 2 - 声明数组
Dim $weeklyWorkSchedule[$daysWorking]
Global $chessBoard[8][8]
Local $mouseCoordinates[2], $windowStats[4]

; 示例 3 - 声明常量
Const $x, $y = 23, $z
Global Const $PI = 3.14159, $RADIUS
Local Const $daysWorking = 5

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文