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