Proposal: Object/?? Destruction

Timon Gehr timon.gehr at gmx.ch
Thu Oct 5 06:42:14 UTC 2017


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:
>>> https://wiki.dlang.org/DIP88
>>>
>>> I'd like to see DIP88 (Named Parameters) revived.  Was this proposal 
>>> rejected or is it just stale and needs a refresh? Named parameters 
>>> can be implemented in a library, however, in my opinion they are 
>>> useful enough to warrant a clean syntax with language support.  I'd 
>>> be willing to refresh the DIP so long as I know the idea has not 
>>> already been rejected.
> 
> 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();

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.


More information about the Digitalmars-d mailing list