You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在AutoHotkey中实现类似JavaScript spread operator的变量展开功能

AutoHotkey 实现类似JS展开数组传参的方案

背景说明

在JavaScript中,我们使用展开运算符来展开数组中的元素作为函数参数,示例如下:

const arr = [1, 2, 3]
console.log(...arr) // 输出 1 2 3

需求为在AutoHotkey中实现同等效果,现有代码如下:

Position := [A_ScreenWidth / 2, A_ScreenHeight]
MouseMove Position ; 需要展开数组变量

实现方案

方案1:内置语法直接展开 (最优)

AutoHotkey 原生支持数组展开传参的语法,在数组变量后加*即可实现和JS展开运算符完全一致的效果,无需额外封装:

Position := [A_ScreenWidth / 2, A_ScreenHeight]
MouseMove Position*

该语法同时兼容AHK v1和v2版本,是首选实现方案。

方案2:按索引手动取元素

如果是数组长度固定的简单场景,也可以直接按索引取出元素传参,AHK数组默认从1开始索引:

Position := [A_ScreenWidth / 2, A_ScreenHeight]
MouseMove Position[1], Position[2]

方案3:封装通用展开调用函数

如果需要批量处理多个函数的展开传参需求,可以封装通用方法复用:

; 通用展开调用:参数1为目标函数名,参数2为待展开的参数数组
SpreadCall(targetFunc, paramsArr) {
    return %targetFunc%(paramsArr*)
}

; 调用示例
Position := [A_ScreenWidth / 2, A_ScreenHeight]
SpreadCall("MouseMove", Position)

内容的提问来源于stack exchange,提问作者Wenfang Du

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.05 05:15:02