我正在寫AutoHotkey腳本,現在對如何比較AutoHotkey中的數字感到困惑。 1>2
顯然是假的,但爲什麼MsgBox alerts 1>2
而不是假?爲什麼MsgBox 1> 2在使用autohotkey時警告1> 2而不是false?
我認爲這是一個布爾比較,爲什麼msgbox不計算結果?
這個問題是不一樣的If Expressions Don't Work。
我正在寫AutoHotkey腳本,現在對如何比較AutoHotkey中的數字感到困惑。 1>2
顯然是假的,但爲什麼MsgBox alerts 1>2
而不是假?爲什麼MsgBox 1> 2在使用autohotkey時警告1> 2而不是false?
我認爲這是一個布爾比較,爲什麼msgbox不計算結果?
這個問題是不一樣的If Expressions Don't Work。
msgbox, % check(1 > 2)
return
check(now)
{
if (now)
return "true"
else
return "false"
}
使用此函數可以檢查表達式的結果並將其返回給msgbox!
看看
%
,使MSGBOX顯示錶達式的結果,而不是字符串其寫爲(在我看來AHK缺陷)
這很可能是因爲你的代碼看起來像這個:MsgBox, (if(1>2))
這被AHK讀爲:Create a message-box, and use the message '(if(1>2))'
。
如果你想真正計算表達式並使用結果作爲消息,正確的語法是這樣的:MsgBox, % 1>2
這會在消息盒子,裏面是等於false
打印出來0
,因爲在AHK單詞true
和false
只是包含1
和0
的內置變量。
我建議你從文檔中閱讀Variables and Expressions的這一頁。它們提供了AHK如何處理變量和表達式的良好洞察,因爲它可能有點特殊。
你忘了接受一些答案。作爲這個問題的非海報,提醒你感覺自己是一種責任。 – Blauhirn