The Nullity Of strings and Its Meaning

kdevel via Digitalmars-d-learn digitalmars-d-learn at puremagic.com
Sun Jul 9 06:12:32 PDT 2017


On Saturday, 8 July 2017 at 23:12:15 UTC, Jonathan M Davis wrote:
> On Saturday, July 8, 2017 5:16:51 PM MDT kdevel via 
> Digitalmars-d-learn wrote:

[...]

> IMHO, if you want to check for empty, then you should use the 
> empty property or check length directly, since those are clear 
> about your intent, whereas with

My starting point wasn't to check for emptiness but the question 
if I can use the additional two states (string var is null or !is 
null) of a string variable to indicate if a value is absent.

> If you understand all of this, it is perfectly possible to 
> write code which treats null arrays as distinct from empty 
> arrays. However, it's _very_ easy to get into a situation where 
> you have an empty array rather than a null one.

My case was: I get a null one from

    "".decodeComponent

where I did not expect it. (cf. my corrected example in my post 
"13 hours ago", i.e Saturday, 08 July 2017, 23:12:20 +00:00).

> Pretty much as soon as you do anything to a null array other 
> than pass it around or compare it, trusting that it's still 
> null can get error-prone.

It's the other way round. I was assuming that it is still not 
null (My example in my first post was wrong).

[...]

> Personally, I think that it can make sense to have a function 
> explicitly return null to indicate something, but beyond that, 
> I'd actually consider using std.typecons.Nullable to make the 
> whole thing clear, even if it is a bit dumb to have to wrap a 
> nullable type in a Nullable to treat it as null.

You hit the nail on the head.

Stefan


More information about the Digitalmars-d-learn mailing list