Syntax 关联数组的键指定失败,带-号且不带双引号

Syntax 关联数组的键指定失败,带-号且不带双引号,syntax,autohotkey,Syntax,Autohotkey,这是一个bug还是在使用-符号时作为键传递的字符串被视为表达式?手册上说双引号是可选的 这是导致错误的无效原因。所以现在它有意义了 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还是在使用-符号时作为键传递的字符串被视为表达式?手册上说双引号是可选的


这是导致错误的无效原因。所以现在它有意义了

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
与答案类似,减号是保留的。当使用任何其他操作符时,快捷方式也不起作用。它不是bug的原因是它允许在为对象命名键时使用数学、字符串操作、函数等。它可能是设计缺陷,也可能不是设计缺陷,但它按照开发人员的预期工作

发件人:

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

(增加重点)

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

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: