If statement 自动热键中是否存在(单行)if语句?

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”语句影响AutoHotKey帮助的“If/IfEqual/…”页面中的语句


“如果使用命令名样式,则另一个命令只能与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