もしかしたら当たり前のことなのかもしれませんが、個人的には結構びっくりしたので覚書として記事に残しておきます。
下のサンプルは、ボタンをクリックすると 以下の処理を行います。
① Mathクラスのrandomメソッドを呼び 乱数を取得する
② 乱数値が奇数か偶数かを判別し、奇数ならば Boolean型の変数 oddNumを"true"に、偶数ならば"false"(デフォルト値) とします
③ oddNum 変数の評価を true/false の替わりに 1/0 で行います
<?xml version="1.0" encoding="utf-8"?> <mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="vertical" horizontalAlign="center"> <mx:Script> <![CDATA[ private function getNum():void { var num:int; var oddNum:Boolean; num = Math.random() * 10; if(num%2 > 0){ oddNum = true; } if(oddNum == 0){ numLabel.text = num + "は偶数です"; }else if(oddNum == 1){ numLabel.text = num + "は奇数です"; }else{ numLabel.text = "0 にも 1 にも入りませんでした"; } } ]]> </mx:Script> <mx:Label id="numLabel" text="下のボタンをクリックして数値を取得してください" fontSize="15" color="#FFFFFF" fontWeight="bold"/> <mx:Button label="クリックして数値を表示" click="getNum()" width="200" height="30"/> </mx:Application>
boolean の評価を true/false ではなく 1/0 でできることにより得られるメリットはこれと言って浮かばないのですが・・
ビルド時にも実行時にも怒られず、型変換の意識もせずにすんなりと動いてしまうのはちょっと恐いかなと。
意図的にはやらないとは思いますが、こんなこともできてしまうのだと気をつけたいと思います。