標籤:

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

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

但很多 AHK 初學者(包括其他編程語言的老手)驚奇地發現 AHK 有兩種賦值運算符,= 和

:=,而且它們的用法居然不一樣。一時摸不到頭腦,甚至對 AHK

頓生反感。當然這不能怪用戶,賦值操作如此混亂的語言,恐怕無出其右了。但如果掌握了,也會發現在賦值操作上,AHK 要比其他語言更為靈活和方便。

:= 的用法

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

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

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

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

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

f := abc

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

f := ""

= 的用法

然後我們再來看 =。

= 後邊的內容全部被認為是字元串,看幾個例子:

a = 123b = 456.789c = textd = ae = %a%f = %a%456

注意這裡邊的 a 和 b 已經不是整數和浮點數了,而全是字元串。d 的值也不是 123,而是字元串 a。那麼是不是 =

只能用來將一個字元串常量賦值給一個變數呢?如果這樣的話,= 基本也沒有存在的必要了。我們可以看下 e = %a%,裡邊有一個奇怪的 % 符號(%

也是 AHK 中的大坑,以後我會專門寫文章介紹),%a% 的意思是取 a 變數的值,所以 e 的值是字元串 123,同理 f 的值是字元串

123456。是不是 = 比 := 稍微難理解一些?

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

a =(123456789)

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

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

a =

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

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

argc = %0%argv1 = %1%

使用場景

既然 = 和 := 在多數情況都可以實現相同的功能,什麼場景應該使用 =,什麼場景應該使用 := 呢?

這個並沒有明確的規定,可以因人而異,根據自己的習慣來。但盡量前後統一,以免給自己和別人帶來麻煩。

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

關於 = 的用法,此文只是簡單介紹幾個例子,還有更多的用法期待大家發掘。

付費解決 Windows、Linux、Shell、C、C++、AHK、Python、JavaScript、Lua 等領域相關問題,靈活定價,歡迎諮詢,微信 ly50247。


推薦閱讀:

用AutoHotkey(AHK) 使用滑鼠手勢在win10下快速切換虛擬桌面?
AutoHotKey 常用函數或小技巧有哪些分享?

TAG:AutoHotkey |