asp動態數組

來源:互聯網
上載者:User

本文所說的 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 例子:

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.