能否在VBScript中声明常量数组?

能否在VBScript中声明常量数组?,vbscript,Vbscript,我想使用一个数组,我在代码顶部多次声明一次。前 施工季度=[“第一季度”、“第二季度”、“第三季度”、“第四季度”] 每季度q q、 做些工作 等等 这可以在VBScript中完成吗?简单回答:不可以。数组不能成为const数组是VBScript中函数调用(array())的结果。只能生成文本值Const。因此:不,您不能。为什么不将数组声明为公共数组,然后在脚本开始时分配数组 Public arrQuarters arrQuarters = Array("Q1", "Q2", "Q3", "Q

我想使用一个数组,我在代码顶部多次声明一次。前

施工季度=[“第一季度”、“第二季度”、“第三季度”、“第四季度”]

每季度q q、 做些工作

等等


这可以在VBScript中完成吗?

简单回答:不可以。数组不能成为
const
数组是VBScript中函数调用(
array()
)的结果。只能生成文本值
Const
。因此:不,您不能。

为什么不将数组声明为公共数组,然后在脚本开始时分配数组

Public arrQuarters
arrQuarters = Array("Q1", "Q2", "Q3", "Q4")

For Each Quarter in arrQuarters
    wscript.echo Quarter
Next

您可以定义一个函数来返回要用作常量的数组。例如:

For Each q in AllQuarters
    wscript.echo q
Next

wscript.echo "element 0 = " & AllQuarters()(0)

AllQuarters()(0) = "X1"

wscript.echo "element 0 still = " & AllQuarters()(0)


Function AllQuarters()
    AllQuarters = Array("Q1","Q2","Q3","Q4")
End Function

较短且不易出错的解决方案是:

Dim arr
arr = Split("Q1 Q2 Q3 Q4") : ubd = UBound(arr)
' Implied separator is " " aka 040 octal aka 32 Dec aka 020 Hex.
如果您的数据可能包含空格:

arr = Split("Le Sage,ne pleure,ni les vivants, ni les morts", ",")
ubd = UBound(arr)
' arr(2), for instance, now contains "ni les vivants"

注意:不要选择可能出现在你的“原子”数据串中的分隔符,否则函数会在一个数据段中间分裂在该分隔符上。

你可能需要等待一点(5分钟),然后再回答一个问题,让更多的人提出建议……为什么?问题得到了回答(我可以随时取消标记)。这是一个好答案。虽然不能声明常量数组,但有一个变通方法:将其定义为函数。