Objective-C语法问题

时间:2013-03-20 05:45:46

标签: objective-c

我只是想知道这行代码是什么意思,因为我之前从未见过它。提前致谢

- (NSString *)suit
{
    return _suit ? _suit : @"?";  /* precisely this part */
}

3 个答案:

答案 0 :(得分:4)

它只是一个名为suit的函数,它返回一个NSString。

如果_suit不是(_suit ? _suit,则此函数将返回_suit。

否则,它将返回@“?” (:@"?"执行此操作。)

(东西?somethingElse:somethingElseAgain)只是意味着如果某些事情是真的,返回一些东西,否则返回一些东西。这就是。

换句话说,它是一种简单的内联方式:

if (something) {
    return somethingElse;
}
else {
    return somethingElseAgain;
}

答案 1 :(得分:2)

- (NSString *)suit
{
    if(_suit)
        return _suit;
    return @"?"
}

答案 2 :(得分:1)

那是ternary operator。它是

的简写
if (_suit)
    _suit;
else
    @"?";