Unofficial wish list status.(Nov 2008)
Denis Koroskin
2korden at gmail.com
Sat Nov 1 09:35:02 PDT 2008
On Sat, 01 Nov 2008 19:33:01 +0300, Andrei Alexandrescu
<SeeWebsiteForEmail at erdani.org> wrote:
> Denis Koroskin wrote:
>> On Sat, 01 Nov 2008 19:04:16 +0300, Andrei Alexandrescu
>> <SeeWebsiteForEmail at erdani.org> wrote:
>>
>>> KennyTM~ wrote:
>>>> ore-sama wrote:
>>>>> 4tuu4k002 at sneakemail.com Wrote:
>>>>>
>>>>>> 105 Multiple return values (tuples (#28)
>>>>>> int, int getPoint();
>>>>>> int a,b;
>>>>>> a,b = getPoint();
>>>>>
>>>>> Provided we have lvalue array literals, this can fit to general
>>>>> array operations rules:
>>>>> int[] getPoint();
>>>>> int a,b;
>>>>> [a,b]=getPoint();
>>>> int code;
>>>> string msg;
>>>> [code, msg] = getError();
>>>
>>> Tuple!(int, "code", string, "msg") getError();
>>> auto e = getError;
>>>
>>>
>>> Andrei
>> Imagine 'code' and 'msg' are already there as local variables and you
>> want to reuse them. How should you do this?
>
> I've been thinking of defining a simple function that binds to variable
> addresses and allows assignment from a tuple, in which case the code
> would be:
>
> group(&code, &msg) = getError;
>
> In "the future" we'll have variadic ref arguments, in which case the
> "&"s can be dropped:
>
> group(code, msg) = getError;
>
> Also in "the future" variable definitions will be expressions, in which
> case the code to define and assign code and msg becomes:
>
> group(int code, string msg) = getError;
>
>
> Andrei
Hmmm, this is almost as nice (inspired by jQuery):
$(code, msg) = getError(); // :)
More information about the Digitalmars-d
mailing list