Redim(array)的作用是什么?Split后为何需重定义数组维度?
VBScript:ReDim用法与Split后重定义数组的原因
1. ReDim(array)的作用
在VBScript中,ReDim是专门用来修改动态数组的维度和大小的工具:
- 可以改变数组的上下界范围(比如把原本长度为5的数组改成长度为10)
- 若不带
Preserve关键字,重新定义时会清空数组里的所有现有数据 - 若加上
Preserve,则会保留数组原有内容,但仅能修改数组最后一维的大小
2. Split后执行ReDim的原因及代码作用
Split(string)执行后会返回一个一维动态数组,这个数组的下界固定为0,但它是由Split函数内部分配的“不可直接调整大小”的数组——如果你之后想给这个数组新增元素,直接对它执行ReDim Preserve会触发报错。
示例中的代码:
Array = Split(string) ReDim Array(0 to Ubound(array))
这里的ReDim核心作用是将Split返回的“锁定数组”转换为可自由调整大小的普通动态数组:它创建了一个和原数组大小完全一致的新动态数组,并用这个新数组覆盖掉原来Split返回的数组引用。
⚠️ 注意:这段代码没有加Preserve关键字,执行后原数组的所有数据会被清空。如果想要保留Split拆分出的内容,正确写法应该是:
Array = Split(string) ReDim Preserve Array(0 to Ubound(array))
内容的提问来源于stack exchange,提问作者Bert Onstott
相关产品推荐
相关产品推荐

