The problem with this in the OP is the first ‘if’ checks if the object exists and the second gets a property of said object only if the original object exists.
I’m not saying the OP is good code, but chaining them like this would result in exceptions.
Correct me if I’m wrong, but the script works faster with nested IFs since if it fails at the first one, it won’t bother reading next ones, unless you kill/return from function.
All in all, this feels like readibility argument, not correctness or efficienty argument
nested lonely ifs?
someone execute this man at once
There are two types of programmers.
// comment if(condition) { // comment1 if(condition1) { // comment2 if(condition2) { printf("hello, world\\n"); } } }
and
// comment if(!condition) { return; } // comment1 if(!condition1) { return; } // comment2 if(!condition2) { return; } printf("hello, world\\n");
And one is objectively correct.
// comment if(x < 10) { // comment1 if(x < 20) { // comment2 if(x < 30) { printf("hello, world\\n"); } } }
“Yeah x might be less than 10 but just in case check if it’s less than 30.”
This is the cursed case when you case the forbidden scroll of the ancients: switch (true) { }
edit: on second thought I’m not sure now I’ll have to think about how fall through cases work
The problem with this in the OP is the first ‘if’ checks if the object exists and the second gets a property of said object only if the original object exists.
I’m not saying the OP is good code, but chaining them like this would result in exceptions.
Not in a language with short circuiting.
Correct me if I’m wrong, but the script works faster with nested IFs since if it fails at the first one, it won’t bother reading next ones, unless you kill/return from function.
All in all, this feels like readibility argument, not correctness or efficienty argument