关联数组的键分配失败,而#符号没有双引号

时间:2012-11-15 11:51:17

标签: syntax autohotkey

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

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

当使用 - 符号时,这是一个bug还是作为表达式传递的字符串?该手册说双引号是可选的。


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

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: 

1 个答案:

答案 0 :(得分:0)

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

来自the AutoHotkey_L documentation

  

引号是键的可选   它只包含单词字符。任何表达式都可以用作   一个键,但要将变量用作键,必须将其括起来   括弧。例如,{(KeyVar): Value}{GetKey(): Value}   都是有效的。

(强调补充)

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