2017-09-01 118 views
1

我有一組數組在AutoHotkey中,我想顯示爲字符串進行調試。如何在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曾表示內置的功能,用於顯示陣列will not be added anytime soon,大部分的解決方案,我在網上找到seem fairly complex

如何在AutoHotkey中打印數組?

+0

這一個https://autohotkey.com/board/topic/70490-print-你發佈的鏈接中的array /?p = 492728非常簡單,可以打印任何深度的數組。 – Oleg

回答

2

此轉換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

+0

爲什麼函數返回一個子串? –

+0

修剪前導分隔符(如果存在) –