我只是尝试在VBScript中初始化一个数组而没有指定它的大小,而且我得到错误:"下标超出范围"。
Option Explicit
dim arr()
arr(0)=2
Call MsgBox("arr: " & arr(0)) 'It prints 2
当我将第二行编辑为dim arr(1)
时,它可以正常工作。
我想知道这是一个错误。或者我错过了什么?
我是VBScript的新手
答案 0 :(得分:2)
当你执行dim arr()
时,它意味着它没有任何大小。因此,要使用它,首先需要确保在声明dim arr(1)
或使用ReDim arry(1)
时指定尺寸。
<强>基本强>
http://www.w3schools.com/asp/vbscript_variables.asp
https://msdn.microsoft.com/en-us/library/t7zd6etz(v=vs.84).aspx
答案 1 :(得分:2)
@PankajJaju已经对你的基本问题给出了一个很好的答案。
如果你的目的是拥有一个可以根据需要动态扩展的数组,你可能想要使用array list:
Option Explicit
dim arr
Set arr = CreateObject("System.Collections.ArrayList")
arr.add 2
msgbox "arr: " & arr(0) 'it *does* print 2!
除了能够动态扩展外,数组列表还有一个很好的排序方法。我上面给出的链接显示了如何在VBScript中使用它们。
(另外 - 请注意,您可以在不使用关键字Call
的情况下调用subs - 但是如果您使用sub而不是函数执行此操作,则需要按照我使用{的方式删除参数旁边的括号{1}})。