ActionScript3.0教程04:數(shù)據(jù)類型
ActionScript3.0教程04:數(shù)據(jù)類型
“數(shù)據(jù)類型”用來定義一組值。
例如,Boolean 數(shù)據(jù)類型所定義的一組值中僅包含兩個(gè)值:true 和 false。
除了 Boolean 數(shù)據(jù)類型外,ActionScript 3.0 還定義了其它幾個(gè)常用的數(shù)據(jù)
類型,如 String、Number 和 Array。
您可以使用類或接口來自定義一組值,從而定義自己
的數(shù)據(jù)類型。
ActionScript 3.0 中的所有值均是對象,而與它們是基元值還是復(fù)雜值無關(guān)。
“基元值”是一個(gè)屬于下列數(shù)據(jù)類型之一的值:Boolean、int、Number、String 和 uint。
基元值的處理速度通常比復(fù)雜值的處理速度快,因?yàn)?ActionScript 按照一種盡可能優(yōu)化內(nèi)
存和提高速度的特殊方式來存儲基元值。
“復(fù)雜值”是指基元值以外的值。定義復(fù)雜值的集合的數(shù)據(jù)類型包括:Array、Date、Error、
Function、 RegExp、XML 和 XMLList。
許多編程語言都區(qū)分基元值及其包裝對象。例如,Java 中有一個(gè) int 基元值和一個(gè)包裝它的
java.lang.Integer 類。Java 基元值不是對象,但它們的包裝是對象,這使得基元值對于某些
運(yùn)算非常有用,而包裝對象則更適合于其它運(yùn)算。在 ActionScript 3.0 中,出于實(shí)用的目
的,不對基元值及其包裝對象加以區(qū)分。所有的值(甚至基元值)都是對象。Flash Player
將這些基元類型視為特例 — 它們的'行為與對象相似,但是不需要創(chuàng)建對象所涉及的正常開
銷。這意味著下面的兩行代碼是等效的:
var someInt:int = 3;
var someInt:int = new int(3);
上面列出的所有基元數(shù)據(jù)類型和復(fù)雜數(shù)據(jù)類型都是由 ActionScript 3.0 核心類定義的。通過
ActionScript 3.0 核心類,可以使用字面值(而非 new 運(yùn)算符)創(chuàng)建對象。例如,可以使用
字面值或 Array 類的構(gòu)造函數(shù)來創(chuàng)建數(shù)組,如下所示:
var someArray:Array = [1, 2, 3]; // 字面值
var someArray:Array = new Array(1,2,3); // Array 構(gòu)造函數(shù)
注意
關(guān)注技術(shù)細(xì)節(jié)的讀者會發(fā)現(xiàn),ActionScript 在內(nèi)部將基元值作為不可改變的對象進(jìn)行存儲。這意
味著按引用傳遞與按值傳遞同樣有效。這可以減少內(nèi)存的使用量并提高執(zhí)行速度,因?yàn)橐猛ǔ?br />
比值本身小得多。
【ActionScript3.0教程04:數(shù)據(jù)類型】相關(guān)文章: