【发布时间】:2013-08-13 23:04:15
【问题描述】:
我找到了一种分配值的方法,如下所示:
NSString *result = [self string] ?: @"none";
如果[self string] 返回一个不等于 nil 的值,则结果将是该返回值,否则为 @"none"。就像 Python 中的 or 运算符。
我测试了几个案例,效果很好。喜欢:
int a = 10 ?: 0; // a is 10
int a = 0 ?: 5; // a is 5
NSString *str = @"abc" ?: 10; // warning: incompatible pointer. It has type checking?
但我找不到任何有关此语法的相关文档或信息。所以我想知道为什么它有效。谁能解释一下?
【问题讨论】:
标签: objective-c ternary-operator