lua-users home
lua-l archive

[Date Prev][Date Next][Thread Prev][Thread Next] [Date Index] [Thread Index]


On 27 November 2011 00:52, Roberto Ierusalimschy <roberto@inf.puc-rio.br> wrote:
>> My proposal [1] was that table.pack should set __len metamethod
>> instead of returning the value or setting "n" field.
>> Wouldn't it be less risky ?
>>
>> [1] http://lua-users.org/lists/lua-l/2011-06/msg01386.html
>
> It is more tricky. We think that 'n' should be something explicit.
> (But we may remove the extra return, as it is redundant with the 'n'
> field.)
>
> -- Roberto
>
>

I'd much rather you didn't set n.
Often you need the args in a list; and the length of the list (eg, to iterate)

local t , n = table.pack(...)
for i=1 , n do
    blah(t[i])
end

without the 2nd return value you have to do [[for i=1,t.n do]] which
just seems strange.


As the code: table.unpack(table.pack(...)) is useless; I don't think
it is valuable to retain symmetry.

D