提问人:Wenfang Du 提问时间:9/12/2021 最后编辑:Wenfang Du 更新时间:9/28/2021 访问量:497
AutoHotkey 中的一行 if-condition-assignment
One line if-condition-assignment in AutoHotkey
问:
在 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 的一行中完成此类作业?
答:
0赞
Wenfang Du
9/12/2021
#1
我们可以使用三元运算符 (?:) 来实现这一点,与 JavaScript 不同,我们可以省略 AutoHotkey 中的 lost 分支:
condition := true
condition ? foo := "foo"
MsgBox % foo
另外,引用0x464e:
请注意,如果您不尝试获取整个三元的评估结果,则只能省略 losing 分支,例如 不起作用。该变量没有为其设置任何值。
var1 := TrueCondition ? "hello"
var1
评论