1
for k, v in {font-weight : "bold"}
    msgbox %k% : %v%    ; : bold

for k, v in {"font-weight" : "bold"}
    msgbox %k% : %v%    ; font-weight : bold

这是一个错误还是作为键传递的字符串在使用 - 符号时被视为表达式?手册说双引号是可选的。


这是无效的,导致错误。所以现在它是有道理的。

font-value := "bold"
msgbox % font-value

结果:

行文本:font-value := "bold" 错误:此行不包含可识别的操作。


附加说明:

for k, v in {font*weight : "bold"}
    msgbox %k% : %v%    ; : bold

for k, v in {10*2 : "10*2"}
    msgbox %k% : %v%    ; 20 : 10*2 

for k, v in { 0xeeeee : "0xeeeee"}
    msgbox %k% : %v%    ; 978670: 
4

1 回答 1

0

与此处的答案类似,减号是保留的。使用任何其他运算符时,该快捷方式也不起作用。它不是错误的原因是它允许在命名对象的键时使用数学、字符串操作、函数等。它可能是也可能不是设计缺陷,但它可以按照开发人员的预期工作。

AutoHotkey_L 文档

对于仅由单词字符组成的键,引号是可选的。任何表达式都可以用作键,但要将变量用作键,则必须将其括在括号中。例如,{(KeyVar): Value}{GetKey(): Value} 都是有效的。

(重点补充)

单词字符通常表示字母、数字和下划线。

于 2012-11-16T11:13:47.963 回答