On 10/30/17 7:32 AM, Dejan Lekic wrote:
On Saturday, 28 October 2017 at 11:38:52 UTC, Andrei Alexandrescu wrote:
Walter and I decided to kick-off project Elvis for adding the homonym
operator to D.
Razvan Nitu has already done a good part of the work:
https://github.com/dlang/dmd/pull/7242
https://github.com/dlang/dlang.org/pull/1917
https://github.com/dlang/dlang.org/pull/1918
Is it going to be something similar (or the same) as in Kotlin?
(Reference:
https://kotlinlang.org/docs/reference/null-safety.html#elvis-operator )
I see from comments that different people think of it in a different
way. I suggest them to read this section from Kotlin docs to understand
the reasoning behind the elvis operator.
From looking quickly at that, but not having any experience with Kotlin
(but having some experience with Swift), I think this really requires a
concept of Nullable types being a builtin feature. The idea is to have
something that always results in a non-null value.
Swift uses the operator ?? to do the same thing (search for ?? on this
page:
https://developer.apple.com/library/content/documentation/Swift/Conceptual/Swift_Programming_Language/BasicOperators.html)
I think D has the capability of doing the same thing, even with Nullable
being a library type, but would have to be pervasive in usage to look
like Kotlin. At least the operator itself fits into the usage of Null or
not types. Of course, the D version is much more adaptable, as any
concept of "Null" or "Invalid" can be ascribed to a type via the
opCast(bool) function.
-Steve