string <-> null/bool implicit conversion

Timon Gehr via Digitalmars-d digitalmars-d at puremagic.com
Fri Aug 21 20:26:22 PDT 2015


On 08/22/2015 02:04 AM, deadalnix wrote:
> On Thursday, 20 August 2015 at 20:39:01 UTC, Timon Gehr wrote:
>> On 08/20/2015 10:26 PM, David Nadlinger wrote:
>>> On Thursday, 20 August 2015 at 16:45:18 UTC, Márcio Martins wrote:
>>>> Having 2 empty strings evaluate differently is very unintuitive and
>>>> error-prone, in my opinion.
>>>
>>> It's even worse: http://dpaste.dzfl.pl/ba3376feca8e
>>>
>>> The arrays are equal, but their Boolean value is not.
>>>
>>> I don't get how Andrei can reconcile this with his "D avoids unforced
>>> errors" stance.
>>>
>>>   — David
>>
>> By denying that it is an error and by playing down its significance,
>> IIRC.
>> Same about [] is null, [1][1..1] is null, but {auto a=[1]; return
>> a[1..1];}() !is null and related cases.
>
> Note that even if you put that asside, D makes the difference between
> equality and identity. null check is an identity check, while truthiness
> is a value check. The semantic is not coherent.

That's also a good point.


More information about the Digitalmars-d mailing list