繁体   English   中英

Autohotkey:有什么区别:=和=赋值运算符

[英]Autohotkey: What's the difference between := and = assignment operator

我不太清楚AutoHotKey中的:==赋值运算符之间的区别。

在手册上, =是传统的作业, :=是表达作业。 我从未见过有人使用=运算符,只有:=

参考和图片如下

在此输入图像描述

你的问题的字面答案是:=后跟一个表达式=后跟一个 ; 这些是等价的:

name = John Smith
name := "John Smith"

两种形式存在的原因是因为AutoHotKey的遗留语法和结构受到批处理语言(如MSDOS批处理文件和unix-shell脚本)的影响。 这些语言尽可能地让人类可读,因为它们经常被修改,并且通常不需要您在实际编程语言中看到的复杂逻辑和结构。

这是一个执行备份的脚本:

SOURCE = /home
DEST = /mnt/backup
run backup %SOURCE% %DEST%

较新的基于表达式的:=运算符更灵活,更强大。 但是语法相对更冗长。 这里使用新样式运算符进行备份并实现变量的默认值(使用old =运算符无法在一行中完成):

source  := source ? source : "/home"
dest    := dest ? dest : "/mnt/backup"
command := "backup " + source + " " + dest
run %command%

如果您所做的只是分配和执行,则批处理文件语法更清晰,更不容易出错。 但是,如果您需要实现更复杂的逻辑,则可以使用表达式语法更简洁地执行此操作。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM