zoukankan      html  css  js  c++  java
  • asp动态数组

    本文所说的 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 样例:
  • 相关阅读:
    【初入职场】工作一个月
    sql中更新数据库用到declare @a in
    Mac 下ll命令 command not found
    GLIBC_2.7升级
    PHP 5.5以后加速插件:Zend Opcache
    ssh的public key的使用
    apache Alias使用问题
    linux下telnet mysql的3306断口,提示Can't connect to MySQL server on localhost (110)
    知乎技术方案初探[转]
    JS刷新父窗口的几种方式
  • 原文地址:https://www.cnblogs.com/yxwkf/p/3820045.html
Copyright © 2011-2022 走看看