Project Elvis
Steven Schveighoffer
schveiguy at yahoo.com
Mon Oct 30 13:34:07 UTC 2017
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
More information about the Digitalmars-d
mailing list