Tables
A table is a Lua data type that can store multiple values including numbers, booleans, strings, functions, and more. Tables are constructed with curly braces ({}
) as shown here:
-- Construct an empty table assigned to variable "t"
local t = {}
print(t)
Once constructed, a table can behave as either an array or a dictionary as illustrated in the following sections.
Arrays
An array is a simple list of ordered values, useful for storing collections of data such as a group of players with special permissions.
Creating Arrays
To create an array using a Lua table, simply store the values sequentially, separated by commas. An array value can be any non-nil
type (boolean, number, string, function, userdata, or even another table).
-- Construct an array with three items
local testArray = {"A string", 3.14159, workspace.Part}
Reading From Arrays
To read from an array, add a pair of brackets after its reference and specify the index number of the element inside ([pos]
):
Unlike some languages, Lua uses 1-based indexing for arrays, meaning that the first item in the array is [1]
, not [0]
.
-- Construct an array with three items
local testArray = {"A string", 3.14159, workspace.Part}
print(testArray[1])
print(testArray[2])
print(testArray[3])l
Writing Into Arrays
The value of an array index can be defined or rewritten by indicating the index number in brackets ([pos]
) followed by =
and then the value:
local testArray = {"A string", 3.14159, workspace.Part}
testArray[2] = 12345
testArray[4] = "New string"
print(testArray[2])
print(testArray[4])
Iterating Over Arrays
Arrays can be iterated over (looped through) in two ways:
Use the built-in
ipairs()
function in afor
loop.Get the array’s length using the
#
operator and loop from 1 to that length value.
local testArray = {"A string", 3.14159, workspace.Part, "New string"}
-- Loop using "ipairs()"
for index, value in ipairs(testArray) do
print(index, value)
end
-- Iterate using the array length operator (#)
for index = 1, #testArray do
print(index, testArray[index])
end
Inserting Items
An item can be inserted at the end of an array through either of these methods:
Pass the array reference and the item value to Lua’s
table.insert()
function.Add the new item to the array using the
t[#t+1]
syntax.
local testArray = {"A string", 3.14159}
table.insert(testArray, "New string")
testArray[#testArray+1] = "Another new string"
print(testArray[3])
print(testArray[4])
Last updated
Was this helpful?