我有这样的课。。
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。
您不能严格键入变量,然后使用 getter 和 setter 来保护类型
public class Doc {
private var _myVar;
public function set myVar(value:Boolean){
_myVar = value;
}
public function get myVar(){
return _myVar;
}
}
现在,当它未设置时 myVar 应该 === null,之后您应该只能将其设置为布尔值。
但这感觉有点老套,我想知道为什么你需要区分。