AutoHotkey数组变量调用报错求助:变量名含非法字符
解决AutoHotkey驼峰式变量名数组访问的错误问题
我想用驼峰式(折叠式)变量名编写AutoHotkey代码,代码如下:
numberOfInstNext := Array("","","","","","","","","","","") numberOfInstNext[1] := 777 i := 1
尝试执行以下代码访问数组元素时:
msgbox %numberOfInstNext[i]%
出现了错误提示:
以下变量名包含非法字符 'numberOfInstNext[i]'
请问该如何解决这个问题?
哈哈,这个坑我刚学AutoHotkey的时候也踩过!问题出在AutoHotkey的传统变量引用语法和表达式语法的区别上:
当你用%变量名%这种传统写法时,AHK会把%包裹的内容直接当作完整的变量名解析,它不会识别里面的[i]是数组索引,反而把整个numberOfInstNext[i]当成了一个包含非法字符的变量名,自然就报错了。
给你两个简单可行的解决办法:
方法1:切换到表达式模式访问数组
AutoHotkey的表达式模式支持直接解析数组索引,只需要在msgbox后面加个逗号和%来切换模式即可:
msgbox, % numberOfInstNext[i]
这种方式最直接,也是AHK推荐的现代写法,能完美支持驼峰式变量名的数组访问。
方法2:用临时变量中转
如果你更习惯传统语法的写法,可以先把数组元素的值赋值给一个简单的临时变量,再调用msgbox:
tempVal := numberOfInstNext[i] msgbox %tempVal%
另外顺便提一句,你原来的数组初始化代码少了个闭合括号,修正后的正确写法是:
numberOfInstNext := Array("","","","","","","","","","","")
这个小问题虽然不是这次报错的原因,但也记得修正哦!
内容的提问来源于stack exchange,提问作者Michael1834
相关产品推荐
相关产品推荐

