Thread overview | |||||
---|---|---|---|---|---|
|
February 17, 2021 null and initialized string comparisons | ||||
---|---|---|---|---|
| ||||
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 Re: null and initialized string comparisons | ||||
---|---|---|---|---|
| ||||
Posted in reply to Martin | 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 Re: null and initialized string comparisons | ||||
---|---|---|---|---|
| ||||
Posted in reply to Adam D. Ruppe | 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
|
Copyright © 1999-2021 by the D Language Foundation