Objective-C是否有更短的编写这行代码的方法?
a = b ? b : c;
也就是说,只要不a
,b
nil
,c
就等于||=
。这就像Ruby的运算符{{1}}
答案 0 :(得分:89)
以下是否适合您:
a = b ? : c;
(此语法是C的GNU扩展,因此您可能必须使用GCC而不是LLVM - http://gcc.gnu.org/onlinedocs/gcc-3.2.3/gcc/Conditionals.html#Conditionals)。
答案 1 :(得分:2)
这就像你在Objective-C中得到它一样短!那是一个很好的小测试。
我能提出的另一个简短方法如下(出于可读性原因,我不推荐它,它不像你的那么短!):
if (b) a = b; else a = c;