Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/actionscript-3/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
String “如何演奏弦乐”;1“;及;0“;在AS3中是真是假?_String_Actionscript 3_Casting_Boolean - Fatal编程技术网

String “如何演奏弦乐”;1“;及;0“;在AS3中是真是假?

String “如何演奏弦乐”;1“;及;0“;在AS3中是真是假?,string,actionscript-3,casting,boolean,String,Actionscript 3,Casting,Boolean,在AS3中,当您尝试使用Boolean()将包含“1”或“0”的字符串强制转换为布尔值时,结果在这两种情况下均为真 Boolean("1") // true Boolean("0") // true 如何在第一种情况下为true,在第二种情况下为false?您可以检查字符串是否包含“1”的确切值,如下所示: var myBool:Boolean = (myString === "1"); var myBool:Boolean = Boolean(int(myString)); 或者你可以做

在AS3中,当您尝试使用Boolean()将包含“1”或“0”的字符串强制转换为布尔值时,结果在这两种情况下均为真

Boolean("1") // true
Boolean("0") // true

如何在第一种情况下为true,在第二种情况下为false?

您可以检查字符串是否包含“1”的确切值,如下所示:

var myBool:Boolean = (myString === "1");
var myBool:Boolean = Boolean(int(myString));
或者你可以做一个双重铸造,像这样:

var myBool:Boolean = (myString === "1");
var myBool:Boolean = Boolean(int(myString));
后者的优点是对于带有空格(“1”)甚至“01”的字符串为真(如果需要的话),但“0”、“0”或“00”仍然为假


我在这里添加了这个Q&A,因为我刚刚偶然遇到布尔值(“0”)为真的问题。如果您有更好的解决方案,请随意评论。

您可以检查字符串是否包含“1”的确切值,如下所示:

var myBool:Boolean = (myString === "1");
var myBool:Boolean = Boolean(int(myString));
或者你可以做一个双重铸造,像这样:

var myBool:Boolean = (myString === "1");
var myBool:Boolean = Boolean(int(myString));
后者的优点是对于带有空格(“1”)甚至“01”的字符串为真(如果需要的话),但“0”、“0”或“00”仍然为假

我在这里添加了这个Q&A,因为我刚刚偶然遇到布尔值(“0”)为真的问题。如果您有更好的解决方案,请随时发表评论

你如何在第一种情况下得到正确,在第二种情况下得到错误

有多种方法可以将
'1'
'0'
分别转换为
true
false
,但更重要的是如何转换其他数字以处理这些情况

例如,如果要将这些字符串视为数字,并将其强制转换为布尔值,就像它们是数字一样,则可以在强制转换为布尔值之前强制转换为
Number

var t = '1';
var f = '0';

Boolean(Number(t)); //true
!!+f; //false, terse syntax
这意味着其他非零数字,如
'-1'
将变为
true
,而转换为
NaN
的非数字,如
'word'
将变为
false

相反,如果要检测值是否准确地为
'1'
,而其他所有值都应为
false
,则使用简单的相等比较:

t === '1'; //true
f === '1'; //false
t !== '0'; //true
f !== '0'; //false
相反,如果要检测值是否不为零,可以使用简单的不等式比较:

t === '1'; //true
f === '1'; //false
t !== '0'; //true
f !== '0'; //false
最后,重要的是你的预期投入和他们各自的预期产出

你如何在第一种情况下得到正确,在第二种情况下得到错误

有多种方法可以将
'1'
'0'
分别转换为
true
false
,但更重要的是如何转换其他数字以处理这些情况

例如,如果要将这些字符串视为数字,并将其强制转换为布尔值,就像它们是数字一样,则可以在强制转换为布尔值之前强制转换为
Number

var t = '1';
var f = '0';

Boolean(Number(t)); //true
!!+f; //false, terse syntax
这意味着其他非零数字,如
'-1'
将变为
true
,而转换为
NaN
的非数字,如
'word'
将变为
false

相反,如果要检测值是否准确地为
'1'
,而其他所有值都应为
false
,则使用简单的相等比较:

t === '1'; //true
f === '1'; //false
t !== '0'; //true
f !== '0'; //false
相反,如果要检测值是否不为零,可以使用简单的不等式比较:

t === '1'; //true
f === '1'; //false
t !== '0'; //true
f !== '0'; //false

最后,重要的是您的预期输入和它们各自的预期输出。

它发生在任何ECMAScript实现中(例如JavaScript)。它发生在任何ECMAScript实现中(例如JavaScript)。谢谢您的回答。我想使用Boolean(Number())和使用Boolean(int())是一样的。“简洁语法”不能在AS3中以严格模式编译。@OMA内部,Flash对所有数字类型使用数字,并对int()、uint()等进行额外转换。谢谢您的回答。我想使用Boolean(Number())和使用Boolean(int())是一样的。“简洁语法”不能在AS3中以严格模式编译。@在内部,Flash对所有数字类型使用数字,并对int()、uint()等进行一些额外的转换。