0

背景:作为一名 Java 程序员,为了熟悉 VBA,我正在创建 Java 的 VBA 实现ArrayList。该类几乎完成了,但我在实现该remove(int index)方法时遇到了麻烦。

问题:如何清空数组中的单个元素。

在 Java 中,我会使用arr[index] = null. 在 VBA 中,我尝试了Set arr[index] = Nothing. 结果是index-th 元素不是空的,而是一个Nothing Object(参见下面我的即时窗口的屏幕截图)。那么,确保函数调用结束的正确语法elementData(0)是什么?Empty

即时窗口

我的完整功能代码如下。

Public Function removeIndex(index As Long) As Variant
    rangeCheck (index) 'verify that index is in-bounds

    modCount = modCount + 1

    Dim oldValue As Variant
    oldValue = elementData(index) 

    Dim numMoved As Long
    numMoved = size - index - 1
    If numMoved > 0 Then
        'move the remaining elements left one
        arrayCopy elementData, index + 1, elementData, index, numMoved
    End If

    size = size - 1
    Set elementData(size) = Nothing
    remove = oldValue
End Function
4

0 回答 0