Vin*_*ang 2 autohotkey colon-equals
我不太明白AutoHotKey 中的赋值运算符:=和=赋值运算符之间有什么区别。
手册上,=是传统作业,:=是表达作业。我从未见过有人使用=运算符,仅使用:=.
参考和图片如下
您问题的字面答案是:=后跟一个表达式,=然后跟一个值;这些是等效的:
name = John Smith
name := "John Smith"
Run Code Online (Sandbox Code Playgroud)
存在这两种形式的原因是 AutoHotKey 的旧语法和结构受到 MSDOS 批处理文件和 unix-shell 脚本等批处理语言的影响。这些语言力求尽可能地具有人类可读性,因为它们经过大量修改,并且通常不需要您在实际编程语言中看到的复杂逻辑和结构。
这是执行备份的脚本:
SOURCE = /home
DEST = /mnt/backup
run backup %SOURCE% %DEST%
Run Code Online (Sandbox Code Playgroud)
较新的基于表达式的:=运算符更加灵活和强大。然而语法相对来说更加冗长。这里使用新样式运算符进行备份并实现变量的默认值(这不能使用旧运算符在单行中完成=):
source := source ? source : "/home"
dest := dest ? dest : "/mnt/backup"
command := "backup " + source + " " + dest
run %command%
Run Code Online (Sandbox Code Playgroud)
如果您所做的只是赋值和执行,则批处理文件语法更清晰且不易出错。但是,如果您需要实现更复杂的逻辑,可以使用表达式语法更简洁地实现。