データ型の記述



プリミティブデータ型には、Boolean、int、Null、Number、String、uint、および void があります。 ActionScript コアクラスは、複合データ型 Object、Array、Date、Error、Function、RegExp、XML、および XMLList も定義します。

Boolean データ型

Boolean データ型は、truefalse の 2 つの値で構成されます。Boolean 型の変数に有効な値は、この 2 つだけです。 宣言されているが、初期化されていない Boolean 変数のデフォルト値は false です。

int データ型

int データ型は、32 ビット整数として内部に保存され、

-2,147,483,648 (-231)~ 2,147,483,647(231 - 1)(両端を含む)の整数のセットで構成されます。 旧バージョンの ActionScript には、整数と浮動小数点数の両方に使用する Number データ型しかありませんでした。 ActionScript 3.0 では、32 ビット符号付および符号なし整数の低レベルマシン型にアクセスすることができるようになりました。 変数が浮動小数点数を使用しない場合、Number データ型ではなく int データ型を使用する方が速く、効率的です。

最小 int 値と最大 int 値の範囲外の整数値の場合は、Number データ型を使用します。Number データ型では、-9,007,199,254,740,992 ~ +9,007,199,254,740,992 の値 (53 ビット整数値) を処理できます。 int データ型である変数のデフォルト値は 0 です。

Null データ型

Null データ型は、1 つの値 null だけで構成されます。これは、String データ型および Object クラスを含む複合データ型を定義するすべてのクラスのデフォルト値です。 Boolean、Number、int、uint などの他のプリミティブデータ型には、値 null は含まれません。Flash Player および Adobe AIR では、Boolean、Number、int、または uint 型の変数に値 null を割り当てようとすると、null は該当するデフォルト値に変換されます。このデータ型を型注釈として使用することはできません。

Number データ型

ActionScript 3.0 では、Number データ型は、整数、符号なし整数、および浮動小数点数を表すことができます。 ただし、パフォーマンスを最大化するために、32 ビット int および uint 型より大きい整数値に対してのみ、Number データ型を使用する必要があります。また、Number データ型には、浮動小数点数を格納することができます。浮動小数点数を格納するには、数値に小数点を含めます。 小数点を省略すると、数値は整数として格納されます。

Number データ型では、2 進数浮動小数点計算のための IEEE 規格 (IEEE-754) で指定されている 64 ビット倍精度フォーマットを使用します。 この規格では、64 ビットを使用して浮動小数点数を格納する方法が指定されています。 1 ビットを使用して数値が正か負かを指定します。 指数には 11 ビットが使用され、2 を底として格納されます。残りの 52 ビットは、指数で指定される累乗した数値である仮数部(仮数とも呼ばれます)を格納するために使用されます。

Number データ型では、ビットの一部を使用して指数を格納することで、仮数のビットすべてを使用する場合より大きな浮動小数点数を格納できます。 例えば、Number データ型で 64 ビットすべてを使用して仮数を格納した場合は、2 65 - 1 の数値を格納できます。Number データ型では、11 ビットを使用して指数を格納することで、仮数を 2 1023 乗できます。

Number 型が表すことができる最大値と最小値は、Number.MAX_VALUE および Number.MIN_VALUE と呼ばれる Number クラスの静的プロパティに格納されます。

Number.MAX_VALUE == 1.79769313486231e+308 
Number.MIN_VALUE == 4.940656458412467e-324

この数値の範囲が膨大である一方で、この範囲の精度が犠牲になっています。 Number データ型では、仮数の格納に 52 ビットを使用します。その結果、分数 1/3 など、正確に表すためには 53 ビット以上必要な数値は近似値にしかなりません。 アプリケーションで小数値を持つ絶対精度が必要な場合、2 進浮動小数点数計算ではなく、10 進浮動小数点計算を実装するソフトウェアを使用する必要があります。

Number データ型で整数値を格納する場合、仮数の 52 ビットだけが使用されます。 Number データ型は、これらの 52 ビットと特殊な非表示のビットを使用して、-9,007,199,254,740,992(-253)~ 9,007,199,254,740,992(253)の整数を表します。

Flash Player および Adobe AIR では、Number 型の変数のデフォルト値としてだけではなく、数値を返す必要があるが返さない演算の結果としても、NaN 値を使用します。例えば、負の数値の平方根を計算しようとすると、その結果は NaN になります。その他の特殊な Number の値には正の無限大と負の無限大があります。

注意: 0 による除算の結果は、除数も 0 の場合、NaN だけです。0 による除算の結果は、被除数が正の場合に正の無限大、被除数が負の場合に負の無限大となります。

String データ型

String データ型は、16 ビット文字のシーケンスを表します。 ストリングは、UTF-16 形式を使用して、Unicode 文字として内部的に格納されます。 ストリングは、Java プログラミング言語の場合と同様に不変値です。 String 値に対する操作は、そのストリングの新しいインスタンスを返します。 String データ型で宣言される変数のデフォルト値は null です。両方とも文字列が存在しないことを表しますが、値 null は、空のストリング("")と同じではありません。

uint データ型

uint データ型は、32 ビット符号なし整数として内部に保存され、0 ~ 4,294,967,295(232 - 1)(両端を含む)の整数のセットで構成されます。負以外の整数が必要な特別な場合に、uint データ型を使用します。 例えば、ピクセルカラー値を表すためには uint データ型を使用する必要があります。これは、int データ型にはカラー値の処理には適していない内部符号ビットがあるためです。 最大 uint 値より大きな整数値には、53 ビット整数値を処理できる Number データ型を使用します。 uint データ型の変数のデフォルト値は 0 です。

void データ型

void データ型は、1 つの値 undefined だけで構成されます。旧バージョンの ActionScript では、undefined は Object クラスのインスタンスのデフォルト値でした。ActionScript 3.0 では、Object インスタンスのデフォルト値は null です。値 undefined を Object クラスのインスタンスに割り当てようとすると、Flash Player または Adobe AIR ではこの値は null に変換されます。型指定されていない変数には、undefined という値のみを割り当てることができます。型指定されていない変数は、型注釈がないか、型注釈にアスタリスク記号(*)が使用されている変数です。void は、戻り値の型注釈としてのみ使用することができます。

Object データ型

Object データ型は Object クラスによって定義されます。 Object クラスは、ActionScript のすべてのクラス定義の基本クラスです。 ActionScript 3.0 の Object データ型は、次の 3 つの点で旧バージョンとは異なります。 1 つ目は、Object データ型は、型注釈のない変数に割り当てられるデフォルトのデータ型ではなくなりました。 2 つ目は、Object データ型には、Object インスタンスのデフォルト値であった値 undefined が含まれなくなりました。3 つ目は、ActionScript 3.0 では、Object クラスのインスタンスのデフォルト値が null になった点です。

旧バージョンの ActionScript では、型注釈のない変数には自動的に Object データ型が割り当てられていました。 ActionScript 3.0 ではこれは行われず、真に型指定されていない変数の概念が導入されました。 型注釈のない変数は、型が指定されていないと見なされます。 コード内で変数の型を指定しないままにしておくことを明確に示す場合、型注釈に新しくアスタリスク記号(*)を使用することができます。これは、型注釈を省略するのと同じことを示します。次の例は、いずれも型指定されていない変数 x を宣言する 2 つの同等のステートメントを示します。

var x 
var x:*

型指定されていない変数だけが値 undefined を保持することができます。値 undefined をデータ型が指定されている変数に割り当てようとすると、Flash Player または Adobe AIR は値 undefined をそのデータ型のデフォルト値に変換します。Object データ型のインスタンスでは、デフォルト値は null です。これは、Object インスタンスに undefined を割り当てようとすると、Flash Player または Adobe AIR が値 undefinednull に変換することを意味します。