[基礎(chǔ)] AHK 中 = 和 := 賦值運算符的用法

在接觸一門新的編程語言后,了解如何對變量賦值幾乎是第一步。有了變量,才可以對變量進行數(shù)學(xué)運算或者邏輯判斷,將調(diào)用函數(shù)得到的結(jié)果存入變量也需要賦值操作。可見賦值運算符的重要性。

但很多 AHK 初學(xué)者(包括其他編程語言的老手)驚奇地發(fā)現(xiàn) AHK 有兩種賦值運算符,= 和 :=,而且它們的用法居然不一樣。一時摸不到頭腦,甚至對 AHK 頓生反感。當(dāng)然這不能怪用戶,賦值操作如此混亂的語言,恐怕無出其右了。但如果掌握了,也會發(fā)現(xiàn)在賦值操作上,AHK 要比其他語言更為靈活和方便。

:= 的用法

先介紹其中相對好理解的 := 運算符。

:= 和其他語言的 = 用法基本一致,來看幾個例子:

a := 123
b := 456.789
c := "text"
d := a
e := a . c

可以看到如果將變量賦值成整數(shù)、浮點數(shù)、字符串,直接寫就好了。我們也可以把一個已經(jīng)存在的變量賦值給一個新變量。這和其他語言中 = 的用法并無二致。.(點運算符)用來拼接字符串,這個在后續(xù)文章中也會單獨介紹。

如果我們將一個不存在的變量賦值給一個新變量,像這樣:

f := abc

那么 f 將是一個空字符串,也就是和這樣效果一樣:

f := ""

= 的用法

然后我們再來看 =。

= 后邊的內(nèi)容全部被認為是字符串,看幾個例子:

a = 123
b = 456.789
c = text
d = a
e = %a%
f = %a%456

注意這里邊的 a 和 b 已經(jīng)不是整數(shù)和浮點數(shù)了,而全是字符串。d 的值也不是 123,而是字符串 a。那么是不是 = 只能用來將一個字符串常量賦值給一個變量呢?如果這樣的話,= 基本也沒有存在的必要了。我們可以看下 e = %a%,里邊有一個奇怪的 % 符號(% 也是 AHK 中的大坑,以后我會專門寫文章介紹),%a% 的意思是取 a 變量的值,所以 e 的值是字符串 123,同理 f 的值是字符串 123456。是不是 = 比 := 稍微難理解一些?

另外 = 還有一些高級用法,比如將多行文本賦值給一個變量:

a =
(
123
456
789
)

在括號中的多行文本會被賦值給 a,這在某些需要賦值大段文字的場景是非常方便的。

用 = 賦值空字符串也更加簡潔:

a =

(其實 a := 這樣用也是可以的,雖然看起來怪怪的。)

此外在某些場景只能用 = 賦值,比如上一篇文章中處理命令行參數(shù)的場景:

argc = %0%
argv1 = %1%

使用場景

既然 = 和 := 在多數(shù)情況都可以實現(xiàn)相同的功能,什么場景應(yīng)該使用 =,什么場景應(yīng)該使用 := 呢?

這個并沒有明確的規(guī)定,可以因人而異,根據(jù)自己的習(xí)慣來。但盡量前后統(tǒng)一,以免給自己和別人帶來麻煩。

一般來說,使用 := 是更加嚴謹?shù)?,這也是和其他編程語言的用法對齊,更易于被接受。但也并不是棄 = 而不用,在某些場景,比如賦值大段文字,= 還是非常方便的。

關(guān)于 = 的用法,此文只是簡單介紹幾個例子,還有更多的用法期待大家發(fā)掘。

付費解決 Windows、Linux、Shell、C、C++、AHK、Python、JavaScript、Lua 等領(lǐng)域相關(guān)問題,靈活定價,歡迎咨詢,微信 ly50247。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容