如何在AutoHotkey中打印数组?

7
我有一组AutoHotkey数组,我想将它们显示为字符串以进行调试。
strArray := ["Alice", "Mary", "Bob"] ; 1D array
strArray2D := [[1,2,3], [4,5,6]]     ; 2D array

在Java、JavaScript和AutoIt中,我可以使用内置的toString()函数来完成此操作。
strArray.toString();            // JavaScript: "Alice,Mary,Bob"
Arrays.toString(strArray);      // Java:       "[Alice, Mary, Bob]"
_ArrayToString($strArray, ", ")  ; AutoIt:     "Alice, Mary, Bob"

AHK的开发者lexikos曾表示内置函数来显示数组不会很快添加,而我在网上找到的大多数解决方案似乎相当复杂如何在AutoHotkey中打印数组?

你发的链接里面的这个 https://autohotkey.com/board/topic/70490-print-array/?p=492728 很简单,可以打印任意深度的数组。 - Oleg
1个回答

7

这将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)
}

enter image description here


为什么这个函数返回一个子字符串? - Stevoisiak
1
如果存在,剪切前导分隔符 - Jim U

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接