AutoHotkey无法创建多行数组 是语法限制还是使用错误?
AHK 跨行数组报错解决方案
问题原因
该报错是AutoHotkey v1的行解析规则导致的,并非AHK不支持跨行数组,也不是语法逻辑错误,只是写法不符合自动续行规则。
AutoHotkey v1默认将每一行识别为独立语句,仅满足以下任意条件时才会将上下行拼接为同一条语句:
- 当前行末尾为逗号、运算符
- 当前行末尾添加了显式续行符(反引号 `)
- 下一行以逗号、运算符开头
原写法中第一行TypeHandler := [直接换行,AHK会将其识别为未闭合数组的独立语句,因此触发报错。
解决方案
方案1:使用显式续行符
在需要换行的位置末尾加反引号 ` 即可实现续行:
TypeHandler := [` {"pattern": "=[0-z]*", "callback": "HandleEIN"},` {"pattern": "&[0-z]*", "callback": "HandleProduct"}` ]
方案2:利用行首逗号自动续行
把数组元素之间的逗号放在下一行的开头,AHK会自动识别续行,不需要额外添加续行符,可读性更高,是AHK v1跨行书写数组、对象的常用方案:
TypeHandler := [ {"pattern": "=[0-z]*", "callback": "HandleEIN"} , {"pattern": "&[0-z]*", "callback": "HandleProduct"} ]
补充说明
如果使用AHK v2版本,原生支持括号、方括号、大括号后的跨行自动续行,最开始的写法可以直接正常运行。
内容的提问来源于stack exchange,提问作者Joeri
相关产品推荐
相关产品推荐

