AHKの%記号の使い方

1773 ワード

AHKには特別な記号%があります.ほとんどネット上の次のAHKコードから、%記号が見えます.また、%AHKでの使い方は他のすべてのプログラミング言語とは異なり、基本的には推測では推測できません.
用法一:%var%
1つ目の使い方は、付与式を紹介するときに触れたことがあります.
a = 123
b = %a%
c = %a%456

=で変数に値を割り当てる場合、1つの文字列が2%で囲まれ、真ん中にスペースがない場合は、この変数の値をとることを意味します.
コマンドを呼び出すときもそうです.
a = 123
MsgBox, %a%

もし私たちがこのように使うならば、Name, xx, yy、Nameは命令です;このように使用すると、Name("xx", "yy"),Nameは関数です.コマンドと関数の違いも後述するが,コマンドに注目するだけでよいことが分かる.
2%の間には、x[1]、x.y、x[y]、fun()などの個別の変数名しかサポートされていないことに注意してください.
用法2:%var
%にはもう一つの使い方がありますが、今回は1つしか現れず、%の後ろに少なくとも1つのスペースがあります.
a = 123
b = % a
MsgBox, % a

このように%を表す後ろの内容を式で解析する.次のように考えることができます.
b = %a%
MsgBox, %a%

および
b = % a
MsgBox, % a

同じですが、実際には後者の方が強いです.
a := 1
b := 2
c := 3

;    a + b + c,    6
MsgBox, % a + b + c

;     
; MsgBox, %a + b + c%

;     ,  +       ,          
; MsgBox, %a% + %b% + %c%

%の後に変数名だけでなく式がある場合、「用法2」は有効で、「用法1」は無効です.
「用法一」か「用法二」かを使う
「用法一」と「用法二」の機能が重なっていることに気づきましたが、実際にはどう使えばいいのでしょうか.これはやはり人によって違うので、できるだけ前後が一致すればいいです.しかし、一部のシーンでは「用法1」が便利で、場合によっては「用法2」が便利で、「用法2」しか使えないこともあります.
使用法1の便利なシーン:
;               
c = "%a% %b%"

;           
c =
(
xxx
%a%
%b%
)

「使い方2」の便利なシーン:
;          
MsgBox, % a " " b " " c " " d

使用法2のシーンのみ:
;        
MsgBox, % a + b - c

また、性能を考えると、「方法一」は「方法二」より2分の1から2倍速いのですが、一般的にボトルネックはここに出るべきではないので、性能の問題もあまり気にしなくてもいいし、本当に大きなサイクルで使うことで性能の問題が発生しているのであれば、修正するのも楽です.
Windows、Linux、Shell、C、C++、AHK、Python、JavaScript、Luaなどの分野に関する問題を有料で解決し、柔軟に価格を設定し、コンサルティングを歓迎し、微信ly 50247.