lua-users home
lua-l archive

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

On Tue, Jan 4, 2011 at 10:18 AM, Greg Falcon <> wrote:
> On Tue, Jan 4, 2011 at 1:02 PM, Leo Razoumov <> wrote:
>> I am fine with the way #t operator is defined. It is logical and
>> consistent. My problem is different. I cannot see a good way to tell
>> when it is safe to trust #t and when not (longing for table.has_holes
>> test)
> The only way to test if a table has holes is to walk it.  So if you
> just want to know if you can trust the answer of #t, call table.maxn()
> instead.  It takes just as long as table.has_holes() would, and it
> gives you the answer you're looking for as well.

table.maxn() will find non-integral numbers:

> t={[1]=1,[2.2]=2}
> = #t
> = table.maxn(t)

You'd need a table.maxi(), something similar to what Roberto posted above.