后台:作为一名Java程序员,为了熟悉VBA,我正在创建Java ArrayList
的VBA实现。该类几乎已完成,但我在实现remove(int index)
方法时遇到问题。
问题:如何清空数组中的单个元素。
在Java中,我会使用arr[index] = null
。在VBA中,我尝试了Set arr[index] = Nothing
。结果是index
- 元素不是空的,而是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