我有一個QBasic函數,它將兩個數組作爲參數。我想知道是否有可能找到這些數組在維度中的維數。如何在QBasic中查找數組參數的維數
對於上下文,我正在爲QBasic單元測試庫編寫一個assertArrayEqual函數。
我有一個QBasic函數,它將兩個數組作爲參數。我想知道是否有可能找到這些數組在維度中的維數。如何在QBasic中查找數組參數的維數
對於上下文,我正在爲QBasic單元測試庫編寫一個assertArrayEqual函數。
有沒有辦法做到這一點。如上所述,您可以確定下限和上限,但您必須事先知道該數組包含的維數。據我所知,這在高級版本中還沒有。
如果您在循環中測試數組維的上限,直到發生錯誤,則可以計算維數。 – eoredson 2018-02-05 03:45:25
它可以做到但它不漂亮:(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
將發生的錯誤是9(下標超出範圍)並且可能被困住。 – eoredson 2018-01-14 07:21:19
您可能可以通過調用'LBOUND' /'UBOUND'並在維度超出範圍時捕獲錯誤來執行此操作,但QBasic的錯誤處理相當難看。我認爲你可能會更好地爲不同的維度製作單獨的功能。 – Boann 2014-08-31 17:39:04