Thread overview
null and initialized string comparisons
Feb 17, 2021
Martin
Feb 17, 2021
Adam D. Ruppe
February 17, 2021
Hi,

is this how it supposed to be? (https://run.dlang.io/is/7B4irm)
---
string a = null;
string t = "";

assert( ! a );
assert( t );
assert( t == a );
---

I have not expected assert(t == a) to be true - i would like to know the argument for why this is correct when at the same time assert(!a) and assert(t) is true.. feels a litle bit js-ish to me
February 17, 2021
On Wednesday, 17 February 2021 at 20:48:22 UTC, Martin wrote:
> is this how it supposed to be? (https://run.dlang.io/is/7B4irm)

== compares contents. Both null and "" have empty contents and are interchangable for operators that work on contents.

The assert just looks at the pointer, not contents. The `is` operator also looks at pointer (and length).
February 18, 2021
On 2/17/21 4:16 PM, Adam D. Ruppe wrote:
> On Wednesday, 17 February 2021 at 20:48:22 UTC, Martin wrote:
>> is this how it supposed to be? (https://run.dlang.io/is/7B4irm)
> 
> == compares contents. Both null and "" have empty contents and are interchangable for operators that work on contents.
> 
> The assert just looks at the pointer, not contents. The `is` operator also looks at pointer (and length).

assert (and if, and using boolean operators) looks at the pointer and length, the same as `is`.

-Steve