Lua Tables — Queries
If you have imported the module as
require 'lulu.table'
Then you have access to the following query methods:
Method | Brief Description |
---|---|
table.size(tbl) |
Returns the number of top-level items in tbl . This works correctly for any Lua table . |
table.is_table(tbl) |
Returns true if a table is a Lua table. |
table.is_array(tbl) |
Returns true if a table is a Lua array. |
table.is_array_of(tbl, e_type) |
Returns true iftbl is a Lua array where all the elements are of the given type e_type . |
table.is_array_of_one_type(tbl) |
Returns true iftbl is a Lua array where all the elements are of the same type. |
table.is_array_of_numbers(tbl) |
Returns true iftbl is a Lua array where all the elements are numbers. |
table.is_array_of_strings(tbl) |
Returns true iftbl is a Lua array where all the elements are strings. |
table.metadata(tbl) |
Returns a metadata table about tbl . |
A Lua array is a Lua table where the keys are consecutive integers starting at 1 with no gaps. |
Metadata
The table.metadata(tbl)
function returns a table of metadata about a table tbl
.
The returned table, md
, has a sub-table md[t]
for each sub-table t
encountered in tbl
, including tbl
itself.
The md[t]
sub-table has the following fields:
Field | Description |
---|---|
md[t].array |
Boolean that is true if t is a Lua array. |
md[t].size |
Number of elements in t . |
md[t].subs |
Number of proper sub-tables in t . |
md[t].refs |
Number of references to t . Greater than one if t is shared. |
This metadata helps understand the structure of a table. The metadata
function can handle tables that contain circular references.
See Also
table.keys
table.values
{table.value_counts}
{table.key_set}
{table.value_set}