私はこのようなクラスを持っています。
public class Doc {
public function Doc():void {}
public var myVar:Boolean;
}
myVarが保持する値がデフォルトでfalseであるか、誰かがfalseを割り当てているかを知るにはどうすればよいですか?!?未定義の状態はありませんか?どうすればそのようなことを達成できますか?
私はこのようなクラスを持っています。
public class Doc {
public function Doc():void {}
public var myVar:Boolean;
}
myVarが保持する値がデフォルトでfalseであるか、誰かがfalseを割り当てているかを知るにはどうすればよいですか?!?未定義の状態はありませんか?どうすればそのようなことを達成できますか?
myVarをプロパティにし、別の変数を使用して、明示的に設定されているかどうかを確認します。
public class Doc
{
public function Doc():void {}
private var _myVar:Boolean;
private var myVarSetExplicitly:Boolean = false;
public function get myVar():Boolean
{
return _myVar;
}
public function set myVar(value:Boolean):void
{
myVarSetExplicitly = true;
_myVar = value;
}
}
ブール値を使用することはできません。デフォルトはfalseで、false===falseです。
変数を厳密に入力してから、ゲッターとセッターを使用して型を保護することはできませんでした
public class Doc {
private var _myVar;
public function set myVar(value:Boolean){
_myVar = value;
}
public function get myVar(){
return _myVar;
}
}
これで、設定されていない場合、myVarは=== nullになり、その後はブール値にのみ設定できるようになります。
しかし、それは少しハッキーな感じがします、そしてなぜあなたは違いを言う必要があるのだろうかと思います。