[nem-en] Declaring Properties in the constructor - ala Boo

Mark Haniford markhaniford at gmail.com
Fri Sep 29 22:47:46 CEST 2006


I was wondering if ":" would be problematic for the arguments.   NoiseEHC's
suggestion of a with or init macro seems pretty nice:

e.g. def window = Window() with Width = 800, Height = 600, Title = "Window";

Is that macroable?

On 9/29/06, Michal Moskal <michal.moskal at gmail.com> wrote:
>
> On 9/29/06, Mark Haniford <markhaniford at gmail.com> wrote:
> > Hi,
> >
> > I think one of the neat features of Boo is that you can declare property
> > values in the constructor:
> >
> http://boo.codehaus.org/Part+09+-+Methods#Part09-Methods-DeclaringPropertiesintheConstructor
> >
> > e.g.  window = Window (Width: 800, Height: 600, Title: "Window");  //
> where
> > Width, Height, and Title are all public properties in the class Window
> >
> > This feature seems very convienent to me.  It would probably be pretty
> easy
> > to write a macro to do it too, e.g. window = Construct(SomeClass, Width:
> > 800, Height: 600, Title: "Window");
> >
> > But would it be more convenient to have it in the compiler proper?  In
> the
> > case of constructors with arguments, you could disallow it, or have
> optional
> > property arguments after the defined constructor arguments
>
> I personally like it -- that would be consistant with custom attributes.
>
> The only problem I see is proper syntax. ':' cannot be used, as it is
> typecast operator. On the other hand, plain '=' conflicts with named
> parameters (I would rather avoid deciding if something is a property
> or named parameter based on context).
>
> --
>    Michał
>
> _______________________________________________
> https://nemerle.org/mailman/listinfo/devel-en
>
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: /mailman/pipermail/devel-en/attachments/20060929/1a3bdac5/attachment.html


More information about the devel-en mailing list