[Flex][ActionScript3]boolean型の値は false=0,true=1 になっている

もしかしたら当たり前のことなのかもしれませんが、個人的には結構びっくりしたので覚書として記事に残しておきます。

下のサンプルは、ボタンをクリックすると 以下の処理を行います。
① 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 でできることにより得られるメリットはこれと言って浮かばないのですが・・
ビルド時にも実行時にも怒られず、型変換の意識もせずにすんなりと動いてしまうのはちょっと恐いかなと。
意図的にはやらないとは思いますが、こんなこともできてしまうのだと気をつけたいと思います。

このブログについて

このブログは吉祥寺にあるブレインチャイルド株式会社の社員で投稿しています。
業務ではまってしまったことや発見したこと。
自分達で新たに学習してみようと思って勉強し始めたことなどを綴っています。
こんな社員が働いているブレインチャイルドに興味がわいててきたなら、是非お問い合わせください。
会社案内
求人案内
先輩のコメント