Wow, I have a split personality today.
I agree that error handling is the real bugbear of single-return. Special additional logic and/or an extra state variable are often required to make it work. It makes code less clear and sometimes even more error-prone. "Break out now" makes the most logical sense in a failure case.
But I see this example as different: there is one kind of result that could be created in one of two different ways. The if statement doesn't add any complexity to the code--you have to check for definedness somehow. Nor does it hurt clarity. Why is indenting so bad?
This is not to say that I object to your preferred solution. I think that's fine, too.
In reply to Re^4: return if defined
by Anonymous Monk
in thread return if defined
by uncoolbob
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |