如何确定动态数组是否未在VBScript中标注尺寸

Eri*_*tas 6 arrays vbscript

假设我在VBScript中创建了一个动态数组

Dim myArray()
Run Code Online (Sandbox Code Playgroud)

稍后我如何检查这个数组从未被标注过尺寸?

Ubound(myArray) 'sub script out of range
Lbound(myArray) 'sub script out of range
IsEmpty(myArray) 'returns false
Run Code Online (Sandbox Code Playgroud)

Han*_*son 5

我不认为内置任何东西,但您可以创建自己的功能:

Function IsInitialized(a)    
    Err.Clear
    On Error Resume Next
    UBound(a)
    If (Err.Number = 0) Then 
        IsInitialized = True
    End If
End Function
Run Code Online (Sandbox Code Playgroud)

您可以将其称为:

Dim myArray()
If Not IsInitialized(myarray) Then
    WScript.Echo "Uninitialized"
End If
Run Code Online (Sandbox Code Playgroud)

但是,解决它的一种方法可能是不声明空数组,而是声明一个变量并稍后将其设置为数组,因此请将上面的代码更改为:

Dim myArray
myArray = Array()
If Not IsInitialized(myarray) Then
    WScript.Echo "Uninitialized"
End If
Run Code Online (Sandbox Code Playgroud)