推 josch:不要自d啦...這樣別人才能參考啊 10/08 13:28
推 josch:置底文有講喔^^a 10/08 13:30
那我自己把解答寫詳細一點:
問題一:請問 AutoHotkey 的 Function() 和 Label: 有什麼差別?
答:function 有 return value,要傳入參數。
label 相當於 subrutine,可以沒有 return value,也可以不用傳入參數。
P.S: 這是 ESMania 論壇 koala 回答的。
問題二:請問 Function() 下的 Global 作用是什麼?
答:AutoHotkey 預設 Function 裡的變數與 Function 外的變數是各自獨立的,
亦即:
Value1 := 357
Gosub Label_1
Label_1:
Function_135()
Return
Function_135()
{
Value1 := 123
MsgBox, %Value1%
Return
}
MsgBox, %Value1%
這兩個 Message Box 顯示出來的 Value1 值不一樣。
一個是 357,一個是 123。
欲使外部的 Value1 和 Function 內的 Value1 為同一個 Value1,
則要在 Function 中加入 Global 指令。
如把上述的 Function_135 改成如下:
Function_135()
{
Global
Value1 := 123
MsgBox, %Value1%
Return
}
如此一來,這兩個 Value1 就會變成一樣了。
Message Box 顯示出來的值也都是會 123。
--
▄▄ ▄▄ ▄▄ ▄▄ ▄▄ ▄▄
▄ ▄ ▄ ▄ ▄ ▄▄ ▄
▄▄▄ ▄ ▄▄ ▄
▄ ▄ ▄ ▄ ▄▄ ▄ ▄ ▄ ▄▄ ▄
▄▄ ▄ ▄▄ ▄▄ ▄▄ ▄ ▄▄
▄ ▄▄ ▄▄▄▄ ▄▄▄▄▄ ▄ ▄ ▄▄ ▄▄ ▄▄
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 61.60.0.162
※ 編輯: gt6174 來自: 218.167.45.240 (10/08 23:42)
推 yinjing:推一個呱 10/13 01:03
※ 編輯: gt6174 來自: 61.60.0.162 (11/02 17:05)
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 114.42.221.238
※ 編輯: gt6174 來自: 211.21.127.209 (07/30 20:21)