AHK 中 = 和 := 賦值運算符的用法

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

但不少 AHK 初學者(包括其餘編程語言的老手)驚奇地發現 AHK 有兩種賦值運算符,= 和 :=,並且它們的用法竟然不同。一時摸不到頭腦,甚至對 AHK 頓生反感。固然這不能怪用戶,賦值操做如此混亂的語言,恐怕無出其右了。但若是掌握了,也會發如今賦值操做上,AHK 要比其餘語言更爲靈活和方便。微信

:= 的用法

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

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

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

能夠看到若是將變量賦值成整數、浮點數、字符串,直接寫就行了。咱們也能夠把一個已經存在的變量賦值給一個新變量。這和其餘語言中 = 的用法並沒有二致。.(點運算符)用來拼接字符串,這個在後續文章中也會單獨介紹。命令行

若是咱們將一個不存在的變量賦值給一個新變量,像這樣:code

f := abc

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

f := ""

= 的用法

而後咱們再來看 =。字符串

= 後邊的內容所有被認爲是字符串,看幾個例子:數學

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

注意這裏邊的 a 和 b 已經不是整數和浮點數了,而全是字符串。d 的值也不是 123,而是字符串 a。那麼是否是 = 只能用來將一個字符串常量賦值給一個變量呢?若是這樣的話,= 基本也沒有存在的必要了。咱們能夠看下 e = %a%,裏邊有一個奇怪的 % 符號(% 也是 AHK 中的大坑,之後我會專門寫文章介紹),%a% 的意思是取 a 變量的值,因此 e 的值是字符串 123,同理 f 的值是字符串 123456。是否是 = 比 := 稍微難理解一些?變量

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

a =
(
123
456
789
)

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

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

a =

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

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

argc = %0%
argv1 = %1%

使用場景

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

這個並無明確的規定,能夠因人而異,根據本身的習慣來。但儘可能先後統一,以避免給本身和別人帶來麻煩。

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

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

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

相關文章
相關標籤/搜索