2014-08-31 72 views
1

我有一個QBasic函數,它將兩個數組作爲參數。我想知道是否有可能找到這些數組在維度中的維數。如何在QBasic中查找數組參數的維數

對於上下文,我正在爲QBasic單元測試庫編寫一個assertArrayEqual函數。

+2

您可能可以通過調用'LBOUND' /'UBOUND'並在維度超出範圍時捕獲錯誤來執行此操作,但QBasic的錯誤處理相當難看。我認爲你可能會更好地爲不同的維度製作單獨的功能。 – Boann 2014-08-31 17:39:04

回答

0

有沒有辦法做到這一點。如上所述,您可以確定下限和上限,但您必須事先知道該數組包含的維數。據我所知,這在高級版本中還沒有。

+0

如果您在循環中測試數組維的上限,直到發生錯誤,則可以計算維數。 – eoredson 2018-02-05 03:45:25

0

它可以做到但它不漂亮:(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 
+0

將發生的錯誤是9(下標超出範圍)並且可能被困住。 – eoredson 2018-01-14 07:21:19