On Wednesday, 8 November 2017 at 07:32:05 UTC, aberba wrote:
I have gone through all the threads and none of the comment
argues why we REALLY need Elvis in D. Seem to me like some kind
of "language peer influence" or something.
Presumably, it's just a more 'elegant' (less verbose) way of
doing something that can already be done.
-- taken from:
https://kotlinlang.org/docs/reference/null-safety.html#elvis-operator
val l: Int = if (b != null) b.length else -1
Along with the complete if-expression, this can be expressed with
the Elvis operator, written ?::
val l = b?.length ?: -1
----------
But I can understand the first example really easily.
The second example, with the elvis operator, I have to spend
'more time' making sure I've interepreted those little symbols
correctly. I don't like this syntactic 'elegance' at all. The
human brain has too much trouble with it, unless it comes into
contact with it often.
So as someone once said, "one has to be very suspicious of the
elegant solution" - Butler Lampson 1992.