ASP 數組-一維數組

作者:vkvi 來源:千一網絡(原創) 日期:2009-2-8

閱讀本文之前建議先閱讀本連載的第一篇:ASP 數組-定義

本文所說的 ASP 數組是指在 ASP 中以默認語言 VBScript 為語言的數組。

下標

  • 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", ",")

你前面那位網友看了:Google 警告:第三方 Gadget 太慢將注明“Slow”

▲▲▲嘿,歡迎轉載傳播本站原創文章,盡量保留來源噢。▲▲▲

文章評論
  • 1 樓:評論
標題:必填
內容:
本站永遠終止與捏造“罪名”不支付廣告費的某度聯盟合作。
vkvi
vkvi

作者簡介: vkvi,致力于 .NET Web 開發、移動開發的技術推廣,在 .NET、SQL Server、Windows Server 等方面有深入研究和豐富經驗,10 年間共計撰寫文章 4000 余篇。 主持金融、國土、農業、電商等多個行業項目執行, 推行“技術提升生產力、人心決定成功率”的管理理論。 聯系他

最新22选5开奖公告