Autohotkey 自动热键如何在阵列中循环

Autohotkey 自动热键如何在阵列中循环,autohotkey,Autohotkey,我主要是一名javascript开发人员,我开始使用authotkey。我在猜测是否有比我使用的方法更好的方法循环遍历数组。基本上是这样的: cycle(value,maxValue){ value += 1 if value not between 1 and %maxValue% value :=1 return value } variable := cycle(variable,array.MaxIndex()) 然后我就这样使用它: cycle(value,maxVa

我主要是一名javascript开发人员,我开始使用authotkey。我在猜测是否有比我使用的方法更好的方法循环遍历数组。基本上是这样的:

cycle(value,maxValue){
 value += 1
 if value not between 1 and %maxValue%
    value :=1
 return value
}
variable := cycle(variable,array.MaxIndex())
然后我就这样使用它:

cycle(value,maxValue){
 value += 1
 if value not between 1 and %maxValue%
    value :=1
 return value
}
variable := cycle(variable,array.MaxIndex())
看起来有点简陋。还有别的办法吗

编辑


我发现我的描述不清楚。我想要的是以循环的方式从数组中获取变量:当您请求下一个值并且已经是最后一个值时,请从头开始重新开始。

听起来您需要的是一个

例如:

colors := Object("red", 0xFF0000, "blue", 0x0000FF, "green", 0x00FF00)
for key, value in colors
    s .= key "=" value "`n"
MsgBox % s
编辑:

根据您的评论,这可能更符合您的需要

index := 0
maxValue := 10

f3::
tooltip % index := cycle(index, maxValue)
return

cycle(index, maxValue)
{
    return index := mod(index + 1, maxvalue)
} 

希望它有帮助

因为blackholyman所做的是正确的,所以它不是针对阵列的。 以下是一种我现在知道有效的方法:

i:=0,somearr:= ["bla","morebla","bla bla"]
;-- do whatever stuff here
somearr[i:=i>1?--i:somearr.MaxIndex()]

你好,布莱克霍尔曼,现在我知道我的问题不清楚了。我不想看整个阵列。我只想在每次按键时获得下一个值(例如),然后在达到最大值后重新开始。在Javascript中,我会使用mod操作符,但在AHKHello blackholyman上似乎没有简单的方法。是的,这是有用的,但我正在寻找更类似于我自己的答案。无论如何,非常感谢你。