AutoHotkey 中的一行 if-condition-assignment
Posted
技术标签:
【中文标题】AutoHotkey 中的一行 if-condition-assignment【英文标题】:One line if-condition-assignment in AutoHotkey 【发布时间】:2021-11-07 22:53:39 【问题描述】:在 javascript 中,我们可以使用以下单行:
const condition = true
let foo
condition && (foo = 'foo') // ???? one-liner
console.log(foo) // foo
我在 AHK 中试过这个:
condition := true
condition && (foo := "foo")
MsgBox % foo
但是,解释器抛出:
我只好把上面的代码改成下面提示“foo”:
condition := true
; ???? three lines
if (condition)
foo := "foo"
MsgBox % foo
如何在 AHK 的一行中做这种类型的赋值?
【问题讨论】:
【参考方案1】:我们可以使用ternary operator (?:) 来实现这一点,与 JavaScript 不同的是,我们可以省略 AutoHotkey 中的丢失分支:
condition := true
condition ? foo := "foo"
MsgBox % foo
另外,引用0x464e:
请注意,如果您不尝试获取整个三元组的评估结果,则只能省略失败的分支,例如
var1 := TrueCondition ? "hello"
不起作用。变量var1
没有设置任何值。
【讨论】:
以上是关于AutoHotkey 中的一行 if-condition-assignment的主要内容,如果未能解决你的问题,请参考以下文章
为啥python 3在while循环之后禁止if-condition? [关闭]
;~ 小部分AutoHotkey源代码片段测试模板2019年10月9日.ahk