成功した場合は値を返し、失敗した場合は false (または nil) を返すオブジェクトがあります。
その値を変数に代入したい
if(var1 = [object foo])
{
//if the [object foo] returned a variable, goes here
}
else
{
//[object foo] returned FALSE (or nil), go here
}
割り当てが有効かどうかを If ステートメントで検出できますか?
成功した場合は値を返し、失敗した場合は false (または nil) を返すオブジェクトがあります。
その値を変数に代入したい
if(var1 = [object foo])
{
//if the [object foo] returned a variable, goes here
}
else
{
//[object foo] returned FALSE (or nil), go here
}
割り当てが有効かどうかを If ステートメントで検出できますか?
This is all right but will generate a warning, since this is a common typo (=
instead of ==
). To silence that warning add another set of parentheses like this:
if ((var = [object foo])) ...
Since this easily can lead to misunderstandings a lot of people will advise against doing this. For a simple if
statement this is much clearer to do the assignment first:
var = [object for];
if (var) ...
In while
loops this is more useful, but also considered harmful by many people.
あなたの質問を理解できるかどうかわかりませんが、確認できるいくつかの状況を説明してみましょう
1) プロパティに値が含まれている
if ([object foo])
{
// If foo has a value associated to it that is not nil/false/zero
}
else
{
// If foo equals nil, false or zero
}
2) 変数への代入が成功した
if ((bar = [object myMethod]))
{
// If myMethod returns any non-nil value
}
else
{
// If myMethod returns nil
}
3) 変数の以前の割り当てが成功した
bar = [object myMethod];
if (bar)
{
// If bar has a value associated to it that is not nil/false/zero
}
else
{
// If bar equals nil, false or zero
}
ifステートメントの==
代わりに使用します。=
ifステートメントの前に、var1 = [object foo]
比較演算子が表示されている場合があります
変数に期待される結果が含まれていることを有効に意味する場合は、期待される結果に対して変数に対して別のifを実行するか、nullを実行してチェックすることができます。