为何AutoHotkey函数内部的For循环无法触发?(v1.1.30.00)
问题分析与解决
你的问题出在变量作用域上:AutoHotkey v1的函数默认是局部作用域,函数内部无法直接访问全局定义的dict变量,所以循环因找不到遍历对象而无法执行。
两种修复方法
- 方法一:在函数内声明全局变量
修改checkForImage()函数,显式声明要访问全局的dict变量:
checkForImage() { global dict ; 声明访问全局dict MsgBox hi for key, val in dict MsgBox %val% return }
- 方法二:将变量定义为超全局
在初始化dict时加上global关键字,让它在所有函数中都可直接访问:
global dict := {"img1": "shark","img2": "blue","img3": "red"}
修改后函数就能正常遍历dict的键值对,弹出对应的内容了。
内容的提问来源于stack exchange,提问作者james
相关产品推荐
相关产品推荐

