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