Uniform Function Call Syntax(UFCS) and @property

Jim bitcirkel at yahoo.com
Fri Mar 4 10:04:59 PST 2011


Jonathan M Davis Wrote:

> On Friday 04 March 2011 04:59:14 David Nadlinger wrote:
> > On 3/3/11 10:27 PM, Jonathan M Davis wrote:
> > > I'd strongly argue that global/module properties make no sense. What are
> > > they a property of? The module?
> > 
> > You could as well say: I'd strongly argue that global/module variables
> > make no sense. What are they a variable of? The module?
> > 
> > In my opinion, allowing global variables but not global properties just
> > creates yet another unneeded special case.
> 
> I see no special case or inconsistency. The original idea behind a property (as 
> I understand it) is to abstract member variables so that you can easily switch 
> between having a public member variable and having a public member function 
> without having to change code. The term property implies that it is a property 
> or attribute of whatever it's on. A global variable or a local variable or any 
> kind of variable not on a class or struct is free-floating and not a property or 
> attribute of anything. How many languages which have properties have them on 
> _anything_ other than objects?
> 
> I was surprised that anyone would suggest that @property could be used on 
> anything other than a class or struct's member function. I strongly suspect that 
> the main reason that anyone is thinking that way is because properties in D grew 
> out of being able to call pretty much any old function without parens as long as 
> it had no parameters instead of based on the concept of properties to begin with 
> as it likely would have been in other languages.
> 
> - Jonathan M Davis


Let's talk about accessors instead of properties because we are talking about the functions, right, not the storage per se?
@getter, @setter as proposed by Michel Fortin.


More information about the Digitalmars-d mailing list