假设我在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)
我不认为内置任何东西,但您可以创建自己的功能:
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)