seeding the pot for 2.0 features
doob
doobnet at gmail.com
Mon Feb 5 14:42:40 PST 2007
Chad J Wrote:
> BCS wrote:
> > Now that the big 1.0 is out, I think that we should start considering
> > what to put into 2.0. I don't think we need to rush anything into D yet,
> > but maybe we should start accumulating a list of things to consider.
> >
> > One overall thought I had is that it seems the big killer for C++ was to
> > some extent that it is a strict superset of C. Maybe we should avoid
> > this problem and not requiter that D2.0 be backwards compatible at the
> > source level, but only at the ABI level sort of like C and D are now.
> > Anyway, just a thought.
>
> ...
>
> The first thing that comes to my mind is explicit properties. I believe
> they can be done without using new keywords or sacrificing much
> generality. Eventually the implicit properties could be deprecated,
> when everyone feels they are no longer widely used.
I think it would be good to add a "property" keyword and maybe also "get" and "set". I think also would be nice to add a feature from ruby that i think works something like this:
Ruby code:
class C
{
attr_reader :variable1, :variable2, :variable3
}
and this will create a private variable and a read property. And ther is also "attr_writer" to create a write property. In D this could look something like this
D code:
class C
{
property
{
int variable1;
char[] variable2;
int variable3;
}
}
This would create a private variable and a get and set property method.
Then you could also write like this:
D code:
class C
{
private property
{
int variable1;
char[] variable2;
int variable3;
}
}
to make the get and set property methods private.
You could write like this:
D code:
class C
{
get
{
int variable1;
char[] variable2;
int variable3;
}
}
to only make a private variable and a get property method.
The get and set methods would be public as default(i think) and the variable would always be private. I think it would be great if you could write as i have described above because when you want a private variable and get and set methods that only sets or returns the value. If you would like to do something in the methods it could look like this:
D code:
class C
{
private int variable_;
public get int variable ()
{
return variable_;
}
public set int variable (int variable)
{
if (variable > 3)
return variable_ = variable;
}
}
More information about the Digitalmars-d
mailing list