If statement 自动热键中是否存在(单行)if语句?
是否有任何方法可以使用未经修饰的“If”语句影响AutoHotKey帮助的“If/IfEqual/…”页面中的语句If statement 自动热键中是否存在(单行)if语句?,if-statement,autohotkey,If Statement,Autohotkey,是否有任何方法可以使用未经修饰的“If”语句影响AutoHotKey帮助的“If/IfEqual/…”页面中的语句 “如果使用命令名样式,则另一个命令只能与IF语句显示在同一行上。”不,自动热键通过单行程序(热键的重新映射除外)实际上没有多大作用 但您可以将if语句包装在函数或子函数中,然后在单行上运行 x:=1 ;All of these (silently) fail IfGreater,x, false, EnvAdd, x, 1 IfEqual,false,%x%, EnvAdd, x,
“如果使用命令名样式,则另一个命令只能与IF语句显示在同一行上。”不,自动热键通过单行程序(热键的重新映射除外)实际上没有多大作用 但您可以将if语句包装在函数或子函数中,然后在单行上运行
x:=1
;All of these (silently) fail
IfGreater,x, false, EnvAdd, x, 1
IfEqual,false,%x%, EnvAdd, x, 1
IfEqual,true,x, EnvAdd, x, 1
IfEqual,1,1, EnvAdd, x, 1
If x, EnvAdd, x, 1
If (x), EnvAdd, x, 1
tf:=true
if true, EnvAdd, x, 1
if tf, EnvAdd, x, 1
;If %x%, EnvAdd, x, 1
If 1, EnvAdd, x, 1
If 0, EnvAdd, x, 1
;
;though these succeed
x:=1
IfEqual,true,%x%, EnvAdd, x, 1 ; x is now 2
x:=1
IfEqual,x,%x%, EnvAdd, x, 1 ; x is now 2
你研究过使用三元运算符吗 例如:
x = 0
EnvAdd(x) ;x stays 0
EnvAdd(1) ;x becomes 2
EnvAdd(x) ;x becomes 3
;since x is global, EnvAdd will modify x
EnvAdd(whatvalue){
global x
msgbox, Hey, a value of %whatvalue%
if(whatvalue = 1){
x:= 2
}else if(whatvalue = 2){
x:= 3
}else{
;do something
}
}
年龄:=60岁
Msgbox%“您”((年龄<45岁)(“45岁以下”):(“45岁以上”))
虽然它在执行变量赋值或返回值时最有用。啊,所以可以简单地说
Age := 60
Msgbox % "You " ((Age < 45) ? ("are under 45") : ("are over 45"))
我以前认为AutoHotKey的sytax是拜占庭式的。现在我觉得这很奇怪。例如,它的文件中存在着明显的矛盾。但我的问题来自于跟踪微软。更好的方法是:
x+=x?1:0
(伪)IF语句接近可理解性 谢谢,节省空间!例外:“语句”不包括分支,例如continue
test ? x:=y+1
or
test ? statement