动作脚本:未定义的公共变量?

发布于 2024-08-07 14:34:23 字数 207 浏览 6 评论 0原文

我有一个这样的类..

public class Doc {
  public function Doc():void {}

  public var myVar:Boolean;
}

我如何知道 myVar 持有的值是否默认为 false,或者有人为其分配了 false ?!?不是有一个未定义的状态吗?我怎样才能实现这样的目标?

I have a class like this..

public class Doc {
  public function Doc():void {}

  public var myVar:Boolean;
}

How can I know if the value held by myVar is default false, or someone has assigned false to it ?!? Isn't there an undefined state? How can I achieve such a thing?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

弃爱 2024-08-14 14:34:23

将 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;
  }
}

Make myVar a property and use another variable to check if it's been set explicitly.

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;
  }
}
怪我鬧 2024-08-14 14:34:23

你不能使用布尔值,它默认为 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,之后您应该只能将其设置为布尔值。

但这感觉有点老套,我想知道为什么你需要区分它们。

You can't with a boolean, it defaults to false and false === false.

You'd could not strictly type the variable and then use a getter and setter to protect the type

public class Doc {
  private var _myVar;

  public function set myVar(value:Boolean){
    _myVar = value;
  }

  public function get myVar(){
    return _myVar;
  }
}

Now, when its not set myVar should === null, and you should only be able to set it to a boolean after that.

But it feels a bit hacky, and I wonder why you need to tell the difference.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文