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 语句能否检测到赋值是否有效?

这没关系,但会生成警告,因为这是一个常见的拼写错误(=而不是==)。要使该警告静音,请添加另一组括号,如下所示:

if ((var = [object foo])) ...

由于这很容易导致误解,因此很多人会建议不要这样做。对于一个简单的if语句,首先做作业要清楚得多:

var = [object for];
if (var) ...

while循环中,这更有用,但也被许多人认为是有害的。

不确定我是否理解您的问题,但让我尝试解释一些您可以检查的情况

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 以检查它。

最新更新