首页 > 解决方案 > Autohotkey,如何在数组的值内循环变量的值

问题描述

我正在努力使用 autohotkey 的数组和循环。

正如您在下面看到的,感谢"v"Array[A_Index]部分,我可以创建两个变量appadm,它们也是数组 1 和数组 2 的值。

我的问题是,如何循环以这种方式创建的所有变量的值?

示例:变量 app 的值为 4,变量 adm 的值为 5,我想使用 Array 指令循环这些值。

我试图做类似的事情: Loop %Array[A_Index]%但它不起作用。有任何想法吗?

PS对不起我的英语,但我无法更好地表达它,

Array := [] 
Array[1] := "app"
Array[2] := "adm"

Loop % Array.count()
{
    Gui, Add, Edit, % "v"Array[A_Index] " x30 y" NodesCount " w50 h17"
    }

Loop % Array.count()
{

    Loop Array[A_Index]
    {
    MsgBox, % A_Index
    }
}

标签: arraysloopsvariablesautohotkey

解决方案


我不太确定这样做的目的是什么,但我让所有部分都工作了。正如您在示例中提到的那样,我添加了一个变量,以及为和NodesCount分配值。我还添加了一个,因为它似乎是必要的。我喜欢使用连接,因为它可以帮助我的大脑理解正在发生的事情,但这不是必需的。appadmGui, Show.

在第二个循环中,我将数组项的内容分配给了一个变量;然后我将内容的内容分配给同一个变量。可能有一种更清洁的方法来做到这一点,但我没有成功地将它直接应用于数组;也就是说,test := %Array[A_Index]%test := % Array[A_Index]没有工作。

f1::
app := 4 , adm := 5 , NodesCount := 10
Array := [] , Array[1] := "app" , Array[2] := "adm"

Loop % Array.count()
    Gui, Add, Edit, % "v" . Array[A_Index] . " x30 y" . NodesCount + 20 * ( A_Index - 1 ) . " w50 h17"
Gui, Show

Loop , % Array.count()
{
    test := Array[A_Index] , test := %test%
    Loop , % test
        MsgBox, % A_Index
}
Return

推荐阅读