AS3では、Boolean()を使用して "1"または "0"を含むStringをBooleanにキャストしようとすると、どちらの場合も結果はtrueになります。文字列「1」と「0」をAS3でtrueとfalseにキャストする方法は?
Boolean("1") // true
Boolean("0") // true
第1のケースではどのようになりますか?2番目のケースではfalseですか?
AS3では、Boolean()を使用して "1"または "0"を含むStringをBooleanにキャストしようとすると、どちらの場合も結果はtrueになります。文字列「1」と「0」をAS3でtrueとfalseにキャストする方法は?
Boolean("1") // true
Boolean("0") // true
第1のケースではどのようになりますか?2番目のケースではfalseですか?
あなたはこのように、「1」のための正確な値を格納するための文字列をチェックすることもできます
var myBool:Boolean = (myString === "1");
それとも、このように、二重の鋳造を行うことができます:
var myBool:Boolean = Boolean(int(myString));
後者空白( "1")または "01"(これが望ましい場合)の文字列の場合には真であるという利点がありますが、依然として "0"、 "0"または "00"は偽です。
このQAを追加しました。このブール値( "0")が真であるというこの問題に直面したためです。より良い解決策をお持ちの場合は、お気軽にコメントしてください。
第1のケースではどのようになりますか?2番目のケースではfalseですか?
はそれぞれtrue
とfalse
に'1'
と'0'
を変換するためのさまざまな方法がありますが、他番号はこれらのケースを処理する方法のためにキャストされているか、より重要。例えば
、あなたは数字としてこれらの文字列を扱い、彼らは数字であるかのように彼らは、あなたがちょうどBoolean
にキャストする前に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
:ゼロ、あなたは簡単な不等式比較を使用することができます。
ECMAScript実装(JavaScriptなど)で発生します。 – axelduch