두 개의 배열을 매개 변수로 사용하는 QBasic 함수가 있습니다. 해당 배열이 함수에서 갖는 차원의 수를 찾는 것이 가능한지 알고 싶습니다.QBasic에서 배열 매개 변수의 크기를 찾는 방법
문맥을 위해 QBasic 유닛 테스트 라이브러리를위한 assertArrayEqual 함수를 작성합니다.
두 개의 배열을 매개 변수로 사용하는 QBasic 함수가 있습니다. 해당 배열이 함수에서 갖는 차원의 수를 찾는 것이 가능한지 알고 싶습니다.QBasic에서 배열 매개 변수의 크기를 찾는 방법
문맥을 위해 QBasic 유닛 테스트 라이브러리를위한 assertArrayEqual 함수를 작성합니다.
이것을 수행 할 방법이 없습니다. 명시된 바와 같이 상한 및 하한을 결정할 수 있지만 배열에 포함 된 차원의 수를 미리 알아야합니다. 내 지식으로는 상위 버전에서도이 기능을 사용할 수 없습니다.
오류가 발생할 때까지 루프에서 배열 차원의 상한을 테스트하면 차원을 계산할 수 있습니다. – eoredson
할 수는 있지만 예쁜 것은 아닙니다. (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
차원이 범위를 벗어나 있지만, QBASIC의 오류 처리가 매우 추한 때 오류를'LBOUND' /'UBOUND'를 호출 잡기에 의해 그것을 할 수 있습니다. 다른 차원에 대해 별도의 기능을 만드는 것이 더 나을 것 같아요. – Boann