Revised RFC on range design for D2
Ary Borenszweig
ary at esperanto.org.ar
Thu Oct 2 08:32:40 PDT 2008
Andrei Alexandrescu wrote:
> Bruno Medeiros wrote:
>> Bill Baxter wrote:
>>>
>>> ---
>>> Somewhat unrelated, but there still exists the annoyance in D that if
>>> you have to functions with the same name and you want to take the
>>> address of one of them, you can't. Furthermore I can't think of a
>>> reasonable syntax to do that easily. For that reason, I really think
>>> the best getter and setter functionality in D would be something where
>>> you have distinctly named *functions* getProp and setProp for when you
>>> want/need functions mirroring samely-named *properties* for which only
>>> property syntax would work.
>>>
>>
>> Hum, that reminds me of an idea I once had for properties: not using a
>> keyword, but only convention, just as the op* methods for operator
>> overload. Basicly one writes a property with getter and setter
>> functions, like Java:
>>
>> class Foo {
>> SomeBar getSomeBar();
>> void setSomeBar(SomeBar someBar);
>> }
>>
>> one can then access those functions normally, like Java, but one would
>> then also be able to use a property with the same name of the
>> getter/setter methods, but without 'get' or 'set', and with the
>> capitalization of the first letter fixed, like this:
>>
>> Foo foo = ...;
>> SomeBar someBar = foo.someBar;
>> //same as: SomeBar someBar = foo.getSomeBar();
>>
>> foo.someBar = new SomeBar();
>> //same as: foo.setBar(new SomeBar());
>>
>> This makes it easy to use Java-style code (for instance when porting
>> Java code, or using libs like DWT, etc.).
>> What I don't like here, is that this solution involves working with
>> the capitalization/CamelCase of the property, which doesn't sound
>> right. And what about properties that start with a capital letter?... :(
>
> What's going on now is pretty much that except that there's no more
> symbol changing - it's just someBar() and someBar(SomeBar).
Pretty much, but not exactly the same, because in this way you can't
distinguish a property from a normal method call. The idea is to be able
to distinguish two different concepts: properties and "procedures".
>
> Andrei
>
More information about the Digitalmars-d-announce
mailing list