如何确定数组维数?
如果您不知道它是否存在,则无法循环任何维度(无错误)。
答案 0 :(得分:2)
从帮助文件:
UBound ( Array [, Dimension] )
Array The array variable which is being queried.
Dimension [optional] Which dimension of a multi-dimensioned array to report the size of. Default is 1, which is the first dimension. If this parameter is 0, the number of subscripts in the array is returned.
考虑到上述情况:
Local $myArray[10][20] ;element 0,0 to 9,19
For $i = 1 To UBound($myArray, 0)
ConsoleWrite("Dimension: " & $i & " :" & UBound($myArray, $i) & @LF)
Next
答案 1 :(得分:0)
是的,我知道,当您需要处理复杂数据或带有模块的大型程序时,AutoIt并不是最好的
错了,但让我们保持主题;)
让我们使用2D数组作为例子。
要获取行数,请使用
$iRowCount = UBOUND($array)
要获取列数,请使用
$iColCount = UBOUND($array, 2)
需要总大小?
$iTotal = UBOUND($array) * UBOUND($array, 2)
编辑:还有什么更大的? Loopit
Local $iTotal = 1
For $i = 1 To UBOUND($array, 0)
$iTotal*= UBOUND($array, $i)
Next
答案 2 :(得分:0)
“ ... 确定尺寸计数。”
根据Documentation - Language Reference - UBound()
的示例:
#include <AutoItConstants.au3>; $UBOUND_DIMENSIONS
Global $g_aArray[1]
ReDim $g_aArray[3][6][9]
ConsoleWrite('Array comprises ' & UBound($g_aArray, $UBOUND_DIMENSIONS) & ' dimensions.' & @CRLF)