【AS3】データ型のチェック
データ型のチェックについてのメモです。
ブログに書くとちゃんと頭に入るのでまとめます。「習うより慣れよ」です。
実行中に値のデータの型をチェックしたい場合は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

