0

可能重复:
问号和冒号(?:三元运算符)在objective-c中是什么意思?

我知道我们设置oldRow为等于某个索引路径。我从未见过这种语法,也无法在我正在使用的书中找到解释。下面代码中的目的是?什么,这段代码到底是做什么的?

int oldRow = (lastIndexPath != nil) ? [lastIndexPath row] : -1;
4

3 回答 3

7
int oldRow = (lastIndexPath != nil) ? [lastIndexPath row] : -1;

相当于:

int oldrow = 0;
if (lastIndexPath != nil)
    oldRow = [lastIndexPath row];
else 
    oldRow = -1;

该语法称为三元运算符并遵循以下语法:

condition ? trueValue : falseValue;

i.e oldRow = (if lastIndexPath is not nil ? do this : if it isn't do this);
于 2012-06-14T17:44:42.453 回答
2

这是 if 语句的简写。基本上它与以下内容相同:

int oldRow;

if(lastIndexPath != nil)
{
    oldRow = [lastIndexPath row];
}
else
{
     oldRow = -1;
}

条件赋值非常方便

于 2012-06-14T17:44:16.267 回答
1

此代码等于此代码

int oldRow;

if (lastIndexPath != nil)
   oldRow = [lastIndexPaht row];
else
   oldRow = -1;
于 2012-06-14T17:44:09.747 回答