Lua table functions
Lua table functions

These are the functions in the "table" table.

Tables are collections of key/value pairs, where both the key and the value can be any Lua data type, except nil.

Tables are indexed by the key, so if you know the key you can quickly retrieve the value. If you don't know the keys you can search the table using the "pairs" or "ipairs" functions.

Since keys and values can be any data type (except nil) it follows that tables can contain other tables.

A table's size (which is only relevant for numerically-indexed tables) is one less than the first integer index with a nil value. If the table has "holes" in it - that is, numeric keys with gaps in the sequence - then the table size is not guaranteed to be the the last gap. Lua does a binary search to try to find a gap, it does not necessarily find the first or last one.

If you are planning to treat your tables as vectors (that is, with numeric keys and a size) then we recommend that you do not allow gaps in the sequence.

If you want to know if a table is empty, or not, you can test:


if next (t) == nil then
  -- table t is empty
end -- if empty


The behaviour of tables can be modified somewhat by attaching a "metatable" to them with the setmetatable function.


See Also ...

Topics

DOC_lua_base Lua base functions
DOC_lua_bc Lua bc (big number) functions
DOC_lua_bit Lua bit manipulation functions
DOC_lua_coroutines Lua coroutine functions
DOC_lua_debug Lua debug functions
DOC_lua_io Lua io functions
DOC_lua_math Lua math functions
DOC_lua_os Lua os functions
DOC_lua_package Lua package functions
DOC_lua_rex Lua PCRE regular expression functions
DOC_lua Lua script extensions
DOC_lua_string Lua string functions
DOC_lua_utils Lua utilities
DOC_scripting Scripting

Lua functions

LUA_table.concat table.concat (Concatenates table items together into a string)
LUA_table.foreach table.foreach (Applies a function to each item in a table)
LUA_table.foreachi table.foreachi (Applies a function to each item in a numerically-keyed table)
LUA_table.getn table.getn (Returns the size of a numerically-keyed table)
LUA_table.insert table.insert (Inserts a new item into a numerically-keyed table)
LUA_table.maxn table.maxn (Returns the highest numeric key in the table)
LUA_table.remove table.remove (Removes an item from a numerically-keyed table)
LUA_table.setn table.setn (Sets the size of a table (obsolete))
LUA_table.sort table.sort (Sorts a table)

(Help topic: general=lua_tables)

DOC_contents Documentation contents page