【AS3】データ型のチェック

| | トラックバック(0)

データ型のチェックについてのメモです。
ブログに書くとちゃんと頭に入るのでまとめます。「習うより慣れよ」です。

実行中に値のデータの型をチェックしたい場合はis,as,typeofを使います。

is演算子
データ型が一致した時true,それ以外はfalseを返します。
var num:int = 250;
trace(num is int );
//出力:true
	
trace(num is Number );
//出力:true
	
trace(num is Number );
//出力:true
	
var aList:Array = [3,5,8];
	
trace(aList is Array);
//出力:true
	
trace(aList is Object);
//出力:true
	
trace(aList is Number);
//出力:false
	
	
var ball:MovieClip = new ballMC();
	
trace(ball is MovieClip);
//出力:true
	
trace(ball is Sprite);
//出力:true
	
trace(ball is DisplayObject);
//出力:true
	
	

データ型がintかどうかで分岐。

var aList:Array = [250, -30, 2.5, "blue"];
	var i:int;
	var cnt:uint = aList.length;
	
	for(i=0; i<cnt; i++){
	var  tmp:* = aLsit[i];
	if(tmp is int){
		var ans:int = tmp*2;
		trace(tmp + "の2倍は"+ ans);
	}else{
		trace(tmp + "はintではない");
	}
	
}


/*///////////////////////////////////////
出力結果
250の2倍は500
-30の2倍は-60
2.5はintではない
blueはintではない
//////////////////////////////////////*/

as演算子
データ型が一致した時その値を返し、一致しないときはnullを返す。
また、評価したデータ型にして値を返すことから、キャストすなわち値のタイプを変換する目的でも利用されます。
var aList:Array = [250,-30, "blue"];
trace (aList[0] as int);
//出力:250
trace (aList[1] as int);
//出力:-30
trace (aList[2] as int);
//出力:null
	
	
typeof
タイプ型に応じた情報をストリングで返します。データ型によって返される値は次のようになっています。
データ型 結果
Array "object"
Boolean "boolean"
Function "function"
int "number"
Number "number"
Object "object"
String "string"
uint "number"
XML "xml"
XMLList "xml"
var num:int = 250;
trace (typeof num);
//出力:Number


var state:Boolean = true;
trace (typeof state);
//出力:boolean


var msg:Boolean = "test";
trace (typeof msg);
//出力:boolean


var aList:Array = [3,5,8];
trace (typeof aList);
//出力:object


var mc:MovieClip = new ballMC();
trace (typeof mc);
//出力:object

タイプを比較するには==, != といった演算子を使っています。
値がストリングであることに注意します。

var aList:Array = [250,-30,2.5,"blue"];
var i:int;
var cnt:uint= aList.length;
for (i=0; i<cnt; i++){
var tmp:* = aList[i];
if(typeof tmp != "number"){

	trace("数値ではない");


}else{

	trace(tmp+"の2倍は"+tmp*2);

}


}

/*///////////////////////////////////

出力結果:
250の2倍は500
-30の2倍は-60 
2.5の2倍は5 
数値ではない 

///////////////////////////////////*/

トラックバック(0)

このブログ記事を参照しているブログ一覧: 【AS3】データ型のチェック

このブログ記事に対するトラックバックURL: http://alwaysfinetuning.com/mt/mt-tb.cgi/52

このブログ記事について

このページは、が2008年10月 2日 15:28に書いたブログ記事です。

ひとつ前のブログ記事は「【AS3】関数とメソッドの違い」です。

次のブログ記事は「【AS3】XML演算子」です。

最近のコンテンツはインデックスページで見られます。過去に書かれたものはアーカイブのページで見られます。