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 <> 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]
> 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

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.