我有一个 QBasic 函数,它接受两个数组作为参数。我想知道是否可以找到这些数组在函数中的维数。
对于上下文,我正在为 QBasic 单元测试库编写一个 assertArrayEqual 函数。
没有办法做到这一点。如前所述,您可以确定下限和上限,但您必须事先知道数组包含多少维。据我所知,这甚至在更高级别的版本中都不可用。
可以做到,但并不漂亮:(QB64 来源)。
REM sample code to find number of dimensions in an array
DIM a(2, 2, 2) AS INTEGER
DIM SHARED E AS INTEGER
ON ERROR GOTO 10
CALL array(a())
END
10 E = -1: RESUME NEXT
SUB array (a() AS INTEGER)
DO
X = X + 1
T = UBOUND(a, X)
IF E THEN
X = X - 1
PRINT "Array has"; X; "dimensions."
EXIT DO
END IF
LOOP
END SUB