On Tuesday, 12 July 2022 at 16:40:38 UTC, H. S. Teoh wrote:
On Tue, Jul 12, 2022 at 04:27:44PM +0000, Antonio via Digitalmars-d-learn wrote:
It works

```d
void main()
{
   assert(null=="");
}
```

why?

Because an empty string is, by default, represented by an empty slice of the null pointer.

Do not rely on this, however; it's possible sometimes to get an empty string that isn't null, e.g., if you incrementally shrink a slice over a string until it's empty. In that case, .ptr will not be null, but the string will still be empty. Always compare strings against "" rather than null, because the latter may not do what you think it does sometimes.


T

Yup, always compare the string with "". I have had this kind of problem a bunch of times, comparing it with null but it is not actually null

Reply via email to