首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >这个表达式是做什么的?GUI% (MainGui:=!MainGui)?"Hide“:"Show”

这个表达式是做什么的?GUI% (MainGui:=!MainGui)?"Hide“:"Show”
EN

Stack Overflow用户
提问于 2019-04-21 16:08:12
回答 1查看 51关注 0票数 0

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

代码语言:javascript
复制
Gui % (MainGui:=!MainGui) ? "Hide" : "Show"

是干什么的呢?我猜它是hotkeys的一种简单的if expression,但是检查两个页面上的示例,我看不到它在哪里。

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

代码语言:javascript
复制
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 
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-04-21 16:57:39

它是一种operator in expressions

三元运算符 v1.0.46+。此运算符是if-else语句的简写替换。它评估其左侧的条件,以确定其两个分支中的哪一个应该成为其最终结果。例如,如果x大于y,则var := x>y ?2: 3将2存储在Var中;否则,它将存储3。为了提高性能,只评估获胜的分支(请参阅短路评估)。

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

  1. (MainGui:=!MainGui)将变量MainGui的值切换到它的相反位置,通常从True切换到False,反之亦然。
  2. 使用标准形式的三元运算符检查变量MainGui的值。如果为True,则使用值Hide;如果为False,则使用值False

在所有评估之后,^esc::Gui % (MainGui:=!MainGui) ? "Hide" : "Show"将转换为以下其中一项:

If Gui Show is True Gui Hide

  • If Gui Show

is ==> ==>

  • If MainGui isTrue==> MainGui is False ==>

简要说明:如果^esc热键处于活动状态,则隐藏Gui;如果处于隐藏状态,则显示Gui。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55781043

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档