關(guān)鍵字說明
Dim / Global / Local / Const
聲明一個(gè)變量、全局變量、局部變量、(多維)數(shù)組或常數(shù)。
參數(shù)
const |
[可選參數(shù)] 若此關(guān)鍵字出現(xiàn)在聲明語句中則創(chuàng)建的將是常量而不是變量。 |
$變量名 |
要聲明的變量名 |
下標(biāo) |
要?jiǎng)?chuàng)建的數(shù)組中每一維的元素?cái)?shù)量,從 0 到 n-1。 |
注意
關(guān)鍵字 Dim/Local/Global 的作用非常相識(shí)
1. 都必須先聲明后使用(類似于 VBScript)
2. 都可以創(chuàng)建數(shù)組
注意:在 AutoIt 中您可以簡(jiǎn)單地對(duì)一個(gè)(并不存在的)變量賦值即可同時(shí)創(chuàng)建該變量(比如 $myvar = 0),但人們一般更喜歡顯式地聲明它們。
在同一行上同時(shí)聲明多個(gè)變量地方法如下所示:
Dim $a, $b, $c
非數(shù)組型變量還可以在聲明的同時(shí)進(jìn)行初始化:
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
常量一旦被聲明則不能再修改它的值。此外也不能把已存在的變量轉(zhuǎn)換為常量。
Dim/Local/Global 這三者的不同之處在于其聲明變量的作用域:
Dim = 如果同名的全局變量并不存在則作用域?yàn)榫植浚ㄈ绻延型娜肿兞看嬖趧t將復(fù)用該變量。
Global = 將某些變量的作用域強(qiáng)制轉(zhuǎn)換為全局的
Local = 將某些變量的作用域強(qiáng)制轉(zhuǎn)換為 局部/函數(shù) 的
在使用變量時(shí)程序?qū)⑹紫葯z查其局部作用域然后再檢查其全局作用域。
創(chuàng)建數(shù)組時(shí)有一個(gè)限制:數(shù)組最大只能達(dá)64維 和/或 共1600萬個(gè)元素。
關(guān)于數(shù)組,有一點(diǎn)比較特別,那就是數(shù)組允許被(整體)復(fù)制,比如:
$mycopy = $myarray
在上例中,$mycopy 將成為數(shù)組 $myarray 的一份完整副本并具有同樣地維數(shù)(不需要事先通過 Dim 語句聲明它)。如果變量 $mycopy 本身就已經(jīng)是數(shù)組或已被賦值,則程序?qū)⑾劝阉膬?nèi)容刪除隨后再執(zhí)行復(fù)制動(dòng)作。
如果要?jiǎng)h除某個(gè)數(shù)組(比如某個(gè)全局?jǐn)?shù)組存儲(chǔ)地內(nèi)容非常大,可能我們就需要把它刪除以釋放內(nèi)存空間),只需參考下例對(duì)該數(shù)組進(jìn)行賦值即可:
$array = 0
這樣之后該數(shù)組所占空間將被釋放,同時(shí)它的值變成 0。
在使用 Dim 語句聲明變量時(shí)若該變量已經(jīng)存在則該變量將被刪除,同時(shí)其維數(shù)將被重設(shè)為新定義的。
相關(guān)
UBound, ReDim
示例
; 示例 1 - 聲明變量
Dim $x, $y = 23, $z
Global $PI = 3.14159, $RADIUS
Local $daysWorking = 5
; 示例 2 - 聲明數(shù)組
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