You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

LotusScript中Erase数组后如何判断数组是否为空?

LotusScript中判断Erase后数组是否为空的方法

在LotusScript里,Erase语句对已初始化的Variant数组执行后,并不会将其重置为未初始化的Empty状态——它只是清空数组元素,留下一个空的数组结构,所以IsEmpty(arr)会返回false,这是正常行为。

要判断Erase后的数组是否为空,最可靠的方式是通过错误捕获检测数组的上下界:因为空数组调用UBound会触发错误,我们可以利用这一点来判断。

示例函数:

Function IsArrayEmpty(arr As Variant) As Boolean
    ' 先判断是否为数组类型
    If Not IsArray(arr) Then
        IsArrayEmpty = True
        Exit Function
    End If
    
    On Error Resume Next
    Dim temp As Integer
    temp = UBound(arr)
    ' 如果调用UBound出错,说明数组是空的
    IsArrayEmpty = (Err.Number <> 0)
    On Error GoTo 0
End Function

使用时直接调用IsArrayEmpty(arr)即可,返回true则表示数组处于Erase后的空状态。

另外你测试ubound(arr(0))时出错,是因为Erase后的数组没有任何元素,访问arr(0)本身就会触发数组越界错误,自然无法调用UBound。

内容的提问来源于stack exchange,提问作者Black Knight

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.16 00:50:56