这个表达式有什么作用?桂 % (MainGui:=!MainGui) ? "Hide" : "Show"

What does this expression do? Gui % (MainGui:=!MainGui) ? "Hide" : "Show"

我在这个线程上找到这段代码:Suspending, Pausing, Hiding, Pulling Up GUI Window:

Gui % (MainGui:=!MainGui) ? "Hide" : "Show"

它有什么作用?我想这是一种简单的 if expression for hotkeys,但是检查两页上的示例我没有看到它所在的位置。

如果使用SetTimer,只有将该代码放入子程序中,计数器才会增加。如果放在外面,计数器就会停止。

Gui +LastFound +AlwaysOnTop +ToolWindow -Caption
Gui, Add, Text, vcounter, 00000
Gui, Show, NoActivate 

SetTimer, Update, 100 ; 100 ms
Update:
    counter++
    GuiControl,, counter, %counter%
    ^esc::Gui % (MainGui:=!MainGui) ? "Hide" : "Show"
Return 

是一种operator in expressions:

Ternary operator [v1.0.46+]. This operator is a shorthand replacement for the if-else statement. It evaluates the condition on its left side to determine which of its two branches should become its final result. For example, var := x>y ? 2 : 3 stores 2 in Var if x is greater than y; otherwise it stores 3. To enhance performance, only the winning branch is evaluated (see short-circuit evaluation).

命令^esc::Gui % (MainGui:=!MainGui) ? "Hide" : "Show"有两部分。

  1. (MainGui:=!MainGui) 切换变量的值 MainGui 它的对面,通常是从 TrueFalse,反之亦然。
  2. 使用三元运算符的标准形式来检查值 变量 MainGui。如果它是 True,它使用值 Hide, 如果它是 False 它使用值 Show.

^esc::Gui % (MainGui:=!MainGui) ? "Hide" : "Show" 在所有评估后转换为以下之一:
1.如果MainGuiTrue ==> Gui Hide
2.如果MainGuiFalse ==> Gui Show

简短说明:^esc 热键在 Gui 处于活动状态时隐藏它,在它隐藏时显示它。