Objective-C 中的 if 语句



有人可以帮我解释以下代码的语法吗?它的意思是"返回?如果_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;
}

最新更新