Proposal: Object/?? Destruction

Seb seb at wilzba.ch
Thu Oct 5 15:23:26 UTC 2017


On Thursday, 5 October 2017 at 06:42:14 UTC, Timon Gehr wrote:
> On 04.10.2017 12:03, aberba wrote:
>>   Upon reading this, It triggered an idea.
>>>
>>> On Saturday, 30 September 2017 at 16:10:44 UTC, Jonathan 
>>> Marler wrote:
>>>> [...]
>> 
>> DIP reminds me of object destruction.
>> 
>> /* extracts success & message from returned type. Could be 
>> tuple or structure, etc. May even eliminate use of tuples for 
>> multiple return
>> */
>> 
>> auto {success, message} = callVoldermortFunction();
>> 
>>   This is concept is used in Kotlin. JavaScript es6 takes it 
>> even further (function parameters and arguments support object 
>> destruction)
>> 
>> 
>
> Why curly braces? Multiple function arguments are a form of 
> built-in tuple, so the syntax should be consistent:
>
> auto (success, message) = callVoldemortFunction();


I think I can state the opinion of many D users here: I don't 
mind whether it will be curly braces or round parentheses - the 
important thing is that we will be able to use it in the 
foreseeable future :)

> The only unresolved question is (as using the result of the 
> comma operator has been deprecated already): How to write a 
> unary tuple. My favourite is what python does: "(3,)". This is 
> however already accepted as a function argument list. I think 
> it is worth breaking though. Maybe we should deprecate it.

+1


More information about the Digitalmars-d mailing list