On 2019-02-04 11:36, Ron Tarrant wrote:

I've seen comments similar to this in several examples. When you say "no one else" you're personifying callers?

Yes.

And so this means: No caller outside the object? Which really amounts to: Since no one INside the object WILL call this() and no one OUTside CAN call this(), it won't ever get called.

Yes, well it's called once. Technically since the protections in D work on module level a caller inside the same file can access the constructor. But one is usually in control of the whole file.

    writeln(DSingleton.instance);

No '()' needed for the call to DSingleton.instance?

No need. It's the way D to implement properties.

If it's called again from somewhere else, say from within an object function several levels of scope away, it's called the same way?

You can call it with or without parentheses. It applies to all functions that don't take any arguments or functions taking a single argument and are called using UFCS [1].

[1] https://dlang.org/spec/function.html#pseudo-member

--
/Jacob Carlborg

Reply via email to