Nullable condition operator

Martin6265 via Digitalmars-d digitalmars-d at puremagic.com
Fri Dec 11 00:30:21 PST 2015


On Monday, 7 December 2015 at 15:13:31 UTC, Meta wrote:
> On Monday, 7 December 2015 at 11:40:45 UTC, Martin6265 wrote:
>> Hello,
>> I think nullable condition operator and null coalescending 
>> operator should be a nice new features in D.
>>
>> https://msdn.microsoft.com/library/dn986595.aspx
>> https://msdn.microsoft.com/library/ms173224.aspx
>>
>> Same as operator `as`
>> https://msdn.microsoft.com/library/cscsdfbt.aspx
>>
>> Why?
>> Is better to write
>> (variable as FooBar)?.callMethod();
>>
>> than
>> auto var = cast(FooBar)variable;
>> if (var !is null)
>> var.callMethod();
>>
>>
>> or
>> auto x = (variable as FooBar)?.getRandomNumber() ?? 42;
>
> As per Rumbu's link, D is powerful enough to implement this in 
> a library function, and have it optimize down to a set of 
> if-else statements.

But the syntax of it will be like calling template func, and its 
not desirable.
The trick is in the simplicity of the pattern not only in 
functionality.

Look, Im developing multiplatform GUI framework (based on .NET 
conventions and Cocoa) & ID. I can make my custom version of D 
(anyway, Ill distribute it as a one package product) but Im not 
happy to make new, uncompatibile version.


More information about the Digitalmars-d mailing list