Which do you prefer of these two? The goal is the same. If bar
is null then make foo
null and avoid the exception. In other languages there is the ?.
operator to help with this.
foo = bar == null ? null : bar.baz();
foo = bar != null ? bar.baz() : null;
I ask because I feel like the “English” of the first example is easier to read and has less negations so it is more straightforward, but the second one has the meat of the expression (bar.baz()
) more prominently.
The first one. Readability is quicker, and you don’t have to stack context in your head if it’s ==.
Personally though, I prefer what I call short circuiting. Return right away if it’s null, basically input sanitization.