必须掌握变量与数组的基本语法和使用方式:变量用:=或=赋值;伪数组通过fruits1等下标模拟;关联数组用Object()创建并支持键值操作;多维结构靠嵌套Object实现;动态变量名用%varName%解析。

如果您在编写AutoHotkey脚本时需要动态存储和操作数据,则必须掌握变量与数组的基本语法和使用方式。以下是实现变量声明、赋值以及数组创建与访问的具体步骤:
一、变量声明与赋值
AutoHotkey中变量无需预先声明类型,直接通过赋值语句创建;赋值使用冒号等号(:=)进行表达式赋值,或等号(=)进行纯字符串赋值。区分赋值方式可避免意外的类型转换问题。
1、使用表达式赋值创建数值型变量:count := 42
2、使用字符串赋值创建文本型变量:name = John Doe
3、将变量内容拼接为新字符串:greeting := "Hello, " . name . "!"
4、读取并显示变量值:MsgBox, % greeting
二、普通数组(伪数组)的创建与访问
AutoHotkey v1不提供原生数组类型,但可通过下标形式(如arr1, arr2)模拟索引数组;所有键名均为字符串,因此需注意数字下标会被自动转为字符串处理。
1、逐个赋值构建索引式伪数组:fruits1 := "apple", fruits2 := "banana", fruits3 := "cherry"
2、使用循环访问前三个元素:Loop, 3 { MsgBox, % "Item " A_Index ": " fruits%A_Index% }
3、获取数组长度需手动计数,例如:length := 3
三、关联数组(对象)的初始化与操作
AutoHotkey v1.1+ 支持Object()创建关联数组(即字典),支持任意字符串键与嵌套结构,是更灵活的数据组织方式。
1、创建空关联数组:person := Object()
2、向关联数组添加键值对:person["name"] := "Alice", person["age"] := 30
3、通过键名读取值:MsgBox, % person["name"] " is " person["age"] " years old."
4、使用For循环遍历所有键值:For key, value in person { MsgBox, % key ": " value }
四、多维结构的模拟方法
通过嵌套关联数组可实现类似二维数组的效果,例如表格数据或坐标映射;每个主键对应一个子Object,从而形成层级关系。
1、创建二维结构根对象:matrix := Object()
2、为第1行分配子对象并填入数据:matrix[1] := Object("x", 10, "y", 20)
3、为第2行分配子对象并填入数据:matrix[2] := Object("x", 30, "y", 40)
4、访问第2行y坐标值:MsgBox, % matrix[2].y
五、变量作用域与动态变量名解析
局部变量默认在函数内有效,全局变量需显式声明;动态变量名可通过百分号包围表达式(%expression%)实现间接引用,常用于循环或配置驱动场景。
1、声明全局变量供多函数使用:global configPath := "C:\Settings.ini"
2、构造动态变量名并赋值:varName := "tempValue", %varName% := 999
3、读取该动态变量内容:MsgBox, % %varName%
4、检查变量是否存在且非空:if (%varName%) { MsgBox, Variable exists and is not blank. }

















