[Date Prev][Date Next][Thread Prev][Thread Next]
[Date Index]
[Thread Index]
- Subject: Re: how to store multi return value provisionally?
 
- From: Axel Kittenberger <axkibe@...>
 
- Date: Mon, 20 Dec 2010 14:40:15 +0100
 
Just put em into a table:
> function r5() return 1, 2, 3, 4, 5 end
> re = {r5()}
> for k, v in ipairs(re) do print(k, v) end
1	1
2	2
3	3
4	4
5	5
On Mon, Dec 20, 2010 at 2:23 PM, starwing <weasley.wx@gmail.com> wrote:
> 2010/12/20 Michal Kottman <k0mpjut0r@gmail.com>:
>> On Mon, 2010-12-20 at 20:48 +0800, starwing wrote:
>>> i.e. i want to do that:
>>>
>>> ??? = coroutine.resume(...)
>>> if ???[1] then
>>>      --- do something with ???[1...]
>>> else
>>>      --- do something with ???[1...]
>>> end
>>>
>>> but I don't want to use table, I just wonder it's possible to
>>> implement it just operate the multi-values itself.
>>
>> Create locals from them. For example, if your thread yields 3 values:
>>
>> local ok, val1, val2, val3 = coroutine.resume(...)
>> if ok then
>>  -- do something with 'val1', 'val2', 'val3'
>> else
>>  -- 'val1' is the error message, process it
>> end
>>
>>
>>
>>
> but what if I don't know the amount of multi return values?
>
>