Other language features you'd want in D
Denton Cockburn
diboss at hotmail.com
Sat Feb 23 08:09:45 PST 2008
On Sat, 23 Feb 2008 03:13:45 -0800, Robert Fraser wrote:
> Denton Cockburn wrote:
>> On Fri, 22 Feb 2008 15:25:24 -0800, Robert Fraser wrote:
>>
>>> Denton Cockburn wrote:
>>>> What are some features found in other languages that you believe would be
>>>> really good to have in D?
>>>>
>>>> These can be language features or library features.
>>>>
>>>> It shouldn't be any of the general items found in the comparison FAQ (like
>>>> Multiple inheritance). Something that's relatively nice and specific.
>>>>
>>>> e.g.
>>>> I miss multiple value returns found in Lisp. Out parameters are not
>>>> nearly as nice.
>>>>
>>>> P.S. Has anyone thought to write a document on some of the struct tricks
>>>> that I've been seeing mentioned? They exploit struct features, but I
>>>> think only a select few understand them.
>>> Initializing runtime constants without a static this() a la Java,
>>>
>>> class C
>>> {
>>> static int x = someRuntimeInitializer(10);
>>> int y = someRuntimeInitializer(20);
>>> }
>>
>> I don't mind the static this() thing much. It puts all the initialization
>> in one place.
>>
>> I hated having to read this in java:
>>
>> class Foo {
>> /* variables with inits */
>> /* some functions */
>> /* some variables with inits that were added to the class later */
>> }
>>
>> I will admit that it's quite a bit more typing though, especially with
>> many defaulted variables.
>
> Constant initialization can already be paired with declaration for
> non-class types:
>
> const(int) HTTP_PORT = 80;
>
> But it can't be for class types at global scope:
>
> const(Port) HTTP_PORT = new Port(80);
>
>
> How is making it valid for (primitives, arrays, structs, anything with a
> constant initializer) but not for classes "keeping initialization in one
> place"?
I agree.
It's also somewhat inconsistent that we can initial these primitives
during declaration globally, but yet, it can't be done in classes.
More information about the Digitalmars-d
mailing list