asp动态数组

2022-07-09 10:44:48 浏览数 (1)

本文所说的 ASP 数组是指在 ASP 中以默认语言 VBScript 为语言的数组。

样例:

Dim MyArray() for i = 0 to 10 ReDim Preserve MyArray(i) MyArray(i)=i next

下标

  • ASP 数组的下标也是从 0 開始的。
  • 要获取某个元素的值则在数组变量后面加上括号,括号里标明下标值,比方 arr(0),注意不是中括号,而是小括号。

定义

dim arr() ‘定义动态数组 dim arr2(2) ‘定义静态数组

在变量名称后面加上括号,就形成了数组。假设括号里指定了数值,就表示定义一个静态数组,即固定大小的数组。

代码中

  • arr() 定义一个动态数组,须要重定义确定长度后才干使用,关于重定义请參见后面。
  • arr2(2) 定义一个下标上限是 2(长度为 3)的静态数组,这与其它语言(比方 C#、JavaScript)有所不同,其它语言的括号里參数表示长度。

erase

erase 动态数组时释放动态数组的存储空间;erase 静态数组时,仅仅是初始化数组的元素值。

dim arr() redim arr(2) erase arr alert(ubound(arr)) ‘错误,erase 已经将动态数组的存储空间所有释放。 dim arr(1) erase arr alert(ubound(arr)) ‘显示 1,erase 仅仅是初始化静态数组的元素值,其占用的空间还在。

重定义 redim

对于动态数组,能够重定义,重定义之后也能够继续重定义;不能对静态数组进行重定义。

dim arr() dim arr2(2) dim arr3() redim arr(0) ‘将数组 arr 的下标上限设为 0(长度为 1)。 redim arr2(1) ‘错误发生。 redim arr3(-1) ‘正确,能够设置为 -1,以表示这个数组长度为 0。

如上重定义数组将导致该数组原有赋值丢失。

重定义 redim preserve

前面讲到重定义数组将导致该数组原有赋值丢失,怎么能保证不丢失呢?用 redim preserve。

dim arr() redim arr(1) arr(0) = “1” alert(arr(0)) ‘显示 1 redim preserve arr(2) alert(arr(0)) ‘仍然显示 1

UBound

ASP 数组没有获取长度的属性或方法,仅仅有获取下标上限的方法-UBound(数组名称),即数组下标的最大值,比方 UBound(arr)。

dim arr(1) Response.Write(UBound(arr)) ‘ 显示上限 1,数组长度为 2 dim arr2() redim arr2(-1) ‘ 能够为动态数组 redim 上限为 -1,但不能为其它负数,比方 -2 就会报“内存不够”。 Response.Write(UBound(arr2)) ‘ 显示上限 -1,数组长度为 0 dim arr3() ‘Response.Write(UBound(arr3)) ‘ 错误发生

Split

Split 将字符串分隔为数组,例如以下 arr2 是错误的。

dim arr dim arr2() ‘错误,这里不能有括号。 arr = Split(“1,2,3”, “,”) arr2 = Split(“1,2,3”, “,”)

Dim MyArray() for i = 0 to 10 ReDim Preserve MyArray(i) MyArray(i)=i next 样例:

Dim MyArray() for i = 0 to 10 ReDim Preserve MyArray(i) MyArray(i)=i next 样例:

发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/119175.html原文链接:https://javaforall.cn

0 人点赞