在Actionscript中测试布尔值是否为空。

7

我有一个Actionscript 3中的布尔变量。

如何检查它是否未定义(不是通过false来判断),因为false是一个值,或者在Actionscript中,Boolean默认为FALSE>


2
布尔型按定义意味着真或假。如果一个布尔变量没有被分配一个值,就像您提到的那样,默认为假。使用默认值为NaN的数字类型如何?或者使用设置为“未定义”的int类型?顺便说一下,所有这些问题都没有获得接受答案,听起来并不令人鼓舞。 - George Profenza
2个回答

12
如果你想要一个可以为未定义的布尔值(类似三态标志)的变量,你可以使用一个Object引用,但是只需要将truefalse赋值给它。缺点是你会失去类型安全性。
var isSet:Object = null;
// Later...
isSet = true;

无论您将布尔变量设置为什么强度级别,它默认都会被设置为false。 :) - Kerisnarendra

8
在ActionScript中,Boolean只能有truefalse这两个值。如果您没有指定任何值,则默认情况下初始化为false

编辑:此行为与Java的Boolean对象类型不同,后者是原始boolean的包装器。请参见@Victor的评论。


但是在Java中,如果初始化布尔对象,您将得到Null。 - Makky
2
Boolean是对boolean原始类型的引用类型包装器。因此,它的未初始化默认值为null - Victor Zamanian
2
@SSF4Negative_Zero - 但是你的问题不是关于Java的;你不能期望所有语言都以相同的方式工作。 - nnnnnn
4
请注意,@VictorZamanian的评论适用于Java而非AS3。 - Ross Attrill
在Flex中是不同的。我的经验是,无论你将布尔变量设置得多么强大,它默认都会被设置为false。 - Kerisnarendra

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接