Greg
Greg

Reputation: 34798

Short way to write conditional assignment in ObjC

Does Objective-C have an even shorter way of writing this line of code?

 a = b ? b : c;

That is, a way to say, a is equal to b as long it is not nil, else c. This is like Ruby's operator ||=

Upvotes: 33

Views: 10761

Answers (2)

Joubert Nel
Joubert Nel

Reputation: 3214

Does the following work for you:

a = b ? : c;

(This syntax is a GNU extension to C, so you might have to use the GCC and not LLVM - http://gcc.gnu.org/onlinedocs/gcc-3.2.3/gcc/Conditionals.html#Conditionals).

Upvotes: 102

James Bedford
James Bedford

Reputation: 28962

That's as short as you can get it in Objective-C! That's a nice little test you have there.

The only other short way I could come up with is as follows (I wouldn't recommend it for readability reasons and it isn't as short as yours!):

if (b) a = b; else a = c;

Upvotes: 2

Related Questions