變量的類(lèi)型
: AutoHotkey 中沒(méi)有明確的變量類(lèi)型. 然而, 只包含數(shù)字 (可以含有小數(shù)點(diǎn)) 的變量進(jìn)行數(shù)學(xué)運(yùn)算或比較時(shí), 會(huì)被自動(dòng)轉(zhuǎn)換為數(shù)值. (為了提高性能, 在內(nèi)部會(huì)對(duì)數(shù)字進(jìn)行緩存以避免與字符串之間的轉(zhuǎn)換.)
變量的作用域和聲明
: 除了函數(shù)中的 局部變量
, 其他所有變量都是全局的; 即可以在腳本的任意位置讀取或修改它們的內(nèi)容. 除了在函數(shù)頁(yè)面
注明的情況,變量都是不需要聲明的妄迁;使用它們的時(shí)候它們就產(chǎn)生了(每個(gè)變量初始為空).
變量的名稱
: 變量名不區(qū)分大小寫(xiě) (例如,CurrentDate
等同于currentdate
). 變量名可以含有多達(dá) 253 個(gè)字符, 并且可以由字母, 數(shù)字以及后面的標(biāo)點(diǎn)組成: # _ @ $
考慮到命名的慣例, 通常在命名變量時(shí)最好僅使用字母, 數(shù)字和下劃線 (例如:CursorPosition
,Total_Items
和entry_is_valid
). 這樣的風(fēng)格可以讓熟悉其他計(jì)算機(jī)語(yǔ)言的人更容易理解您的腳本. 而且, 如果您在 AutoHotkey 和其他語(yǔ)言中使用相同的風(fēng)格, 您會(huì)發(fā)現(xiàn)能更容易重新讀懂自己的腳本.
盡管變量名可以完全由數(shù)字組成, 但通常這樣的名稱僅用于 傳入的命令行參數(shù)
. 這樣數(shù)值名稱的變量不能用在 表達(dá)式
中, 因?yàn)樗鼈儠?huì)被看成是數(shù)字而不是變量.
因?yàn)閱卧~AND
,OR
和NOT
作為表達(dá)式的 運(yùn)算符
使用, 所以通常不應(yīng)該把它們用作變量名稱. 在表達(dá)式中使用這樣的名稱會(huì)無(wú)法正確計(jì)算.
給變量賦值
: 要把字符串或數(shù)字保存到變量中, 有兩種方法: 傳統(tǒng)方法和表達(dá)式方法. 傳統(tǒng)方法使用 等號(hào)運(yùn)算符 (=)
來(lái)指定沒(méi)有加引號(hào)的
原義字符串或包圍在百分號(hào)中的變量.
例如:
MyNumber = 123
MyString = This is a literal string.
CopyOfVar = %Var% ; 和 = 運(yùn)算符一起使用時(shí), 需要使用百分號(hào)來(lái)獲取變量的內(nèi)容.
變量和表達(dá)式
與之相比, 表達(dá)式方法使用 冒號(hào)等號(hào)運(yùn)算符 (:=)
來(lái)保存數(shù)字,加引號(hào)的
字符串和其他類(lèi)型的 表達(dá)式
. 下面的例子在功能上與前面的例子相同:
MyNumber := 123MyString := "This is a literal string."CopyOfVar := Var; 和前面段落中與其作用相同的語(yǔ)句不同, 百分號(hào)不和 := 運(yùn)算符一起使用.
讓變量為空:
MyVar =
MyVar := ""
獲取變量的內(nèi)容
: 如同賦值有兩種方法, 獲取變量的內(nèi)容也有兩種方法: 傳統(tǒng)方法和表達(dá)式方法. 傳統(tǒng)方法需要將變量名包圍在百分號(hào)中來(lái)獲取變量的內(nèi)容. 例如:
MsgBox
The value in the variable named Var is %Var%.CopyOfVar = %Var%
與之相比, 表達(dá)式方法省去了變量名兩邊的百分號(hào), 但原義的字符串必須包圍在雙引號(hào)中. 所以, 下面的表達(dá)式作用等同于上面的例子:
MsgBox%
"The value in the variable named Var is " . Var . "."; 使用句點(diǎn)連接 (join 拼接) 兩個(gè)字符串.
CopyOfVar := Var
在上面的 MsgBox 這行, 通過(guò)使用百分號(hào)和空格把參數(shù)從傳統(tǒng)模式改變?yōu)楸磉_(dá)式模式. 因?yàn)樗械拿钅J(rèn)情況下使用傳統(tǒng)模式 (除了另外注明的那些), 所以這是必須的. 不過(guò), 某些命令的特定參數(shù)已注明接受表達(dá)式, 此時(shí)前導(dǎo)的百分號(hào)可以省略. 例如, 下面的所有語(yǔ)句都是等效的, 因?yàn)?Sleep
的首個(gè)參數(shù)可以是表達(dá)式:
Sleep MillisecondsToWaitSleep %MillisecondsToWait%Sleep % MillisecondsToWait
變量的比較
: 請(qǐng)閱讀下面表達(dá)式部分中關(guān)于不同類(lèi)型變量比較的重要提示, 尤其是關(guān)于何時(shí)使用小括號(hào)的內(nèi)容