如何在AutoHotkey中打印数组?

Ste*_*ica 2 arrays autohotkey

我在AutoHotkey中有一组数组,希望将它们显示为调试字符串。

strArray := ["Alice", "Mary", "Bob"] ; 1D array
strArray2D := [[1,2,3], [4,5,6]]     ; 2D array
Run Code Online (Sandbox Code Playgroud)

在Java,Javascript和AutoIt中,我可以使用内置的toString()函数来完成此操作。

strArray.toString();            // JavaScript: "Alice,Mary,Bob"
Arrays.toString(strArray);      // Java:       "[Alice, Mary, Bob]"
_ArrayToString($strArray, ", ")  ; AutoIt:     "Alice, Mary, Bob"
Run Code Online (Sandbox Code Playgroud)

AHK的开发人员lexikos表示,不会很快添加用于显示数组的内置功能,而且我在网上发现的大多数解决方案似乎都相当复杂

如何在AutoHotkey中打印数组?

Jim*_*m U 5

这会将1维和2维数组转换为字符串

F2:: MsgBox % join(["Alice", "Mary", "Bob"])
F3:: MsgBox % join2D([[1,2,3], [4,5,6]])


join( strArray )
{
  s := ""
  for i,v in strArray
    s .= ", " . v
  return substr(s, 3)
}

join2D( strArray2D )
{
  s := ""
  for i,array in strArray2D
    s .= ", [" . join(array) . "]"
  return substr(s, 3)
}
Run Code Online (Sandbox Code Playgroud)

在此处输入图片说明