有人可以帮我解释以下代码的语法吗?它的意思是"返回?如果_suit
nil
,如果数组中_suit
不是nil
,则返回数组中的相应字符串"。
- (NSString *)suit
{
return _suit ? _suit : @"?";
}
它是否等效于以下代码?
if (!_suit) {
return @"?";
} else {
return ?
}
是的,这是 if 块的缩写。它是一个条件运算符。
格式如下(在许多其他语言中相同):
condition ? ifTrue: ifFalse;
所以你的代码:
return _suit ? _suit : @"?";
与
if(_suit) {
return _suit;
} else {
return @"?";
}
您可以在此处阅读有关它的更多信息。
不,
它不一样。"?:"运算符将后面描述为单行的 if else 语句:
(如果子句) ? : .
因此,在您的情况下,这意味着:
if (!_suit) {
return @"?";
} else {
return _suit;
}