Example 1: print table lua
function print_table(node)
local cache, stack, output = {},{},{}
local depth = 1
local output_str = "{\n"
while true do
local size = 0
for k,v in pairs(node) do
size = size + 1
end
local cur_index = 1
for k,v in pairs(node) do
if (cache[node] == nil) or (cur_index >= cache[node]) then
if (string.find(output_str,"}",output_str:len())) then
output_str = output_str .. ",\n"
elseif not (string.find(output_str,"\n",output_str:len())) then
output_str = output_str .. "\n"
end
-- This is necessary for working with HUGE tables otherwise we run out of memory using concat on huge strings
table.insert(output,output_str)
output_str = ""
local key
if (type(k) == "number" or type(k) == "boolean") then
key = "["..tostring(k).."]"
else
key = "['"..tostring(k).."']"
end
if (type(v) == "number" or type(v) == "boolean") then
output_str = output_str .. string.rep('\t',depth) .. key .. " = "..tostring(v)
elseif (type(v) == "table") then
output_str = output_str .. string.rep('\t',depth) .. key .. " = {\n"
table.insert(stack,node)
table.insert(stack,v)
cache[node] = cur_index+1
break
else
output_str = output_str .. string.rep('\t',depth) .. key .. " = '"..tostring(v).."'"
end
if (cur_index == size) then
output_str = output_str .. "\n" .. string.rep('\t',depth-1) .. "}"
else
output_str = output_str .. ","
end
else
-- close the table
if (cur_index == size) then
output_str = output_str .. "\n" .. string.rep('\t',depth-1) .. "}"
end
end
cur_index = cur_index + 1
end
if (size == 0) then
output_str = output_str .. "\n" .. string.rep('\t',depth-1) .. "}"
end
if (#stack > 0) then
node = stack[#stack]
stack[#stack] = nil
depth = cache[node] == nil and depth + 1 or depth - 1
else
break
end
end
-- This is necessary for working with HUGE tables otherwise we run out of memory using concat on huge strings
table.insert(output,output_str)
output_str = table.concat(output)
print(output_str)
end
Example 2: lua tables
local favoritefoods_table = {"hamburger", "spaghetti", "pizza", "potato chips"}
--the table--
for i, v in pairs(favoritefoods_table) do --loop through the table--
print(i) --print the number--
print(v) --print the value--
end
Example 3: table in lua
local myTable = {}
Example 4: table lua
a = {}
x = "y"
a[x] = 10 -- put 10 in field "y"
print(a[x]) --> 10 -- value of field "y"
print(a.x) --> nil -- value of field "x" (undefined)
print(a.y) --> 10 -- value of field "y"
Example 5: lua table
local Table = {
"Hello",
"Goobye",
"Bruh",
Part = Instance.new("Part")
}
-- This is our table!
print(#Table)
--[[
This will print the amount of stuff inside the table by numbers!
For example, if you had 140 objects inside a table (doesn't matter if it's a
string) then print(#Table) will print out the number 140, exactly how many
things are inside the table!
Output: (the amount of objects inside the table BY NUMBERS)
]]
for i, v in pairs(Table) do
print(i,v)
end
--[[
This is a for loop. It will go through each and every object inside the table.
i is the index. The index is like the line number, where the object is located.
Let's say that Bob is the 4th object in the table.
If we would think of tables as lines, Bob would be at line 4.
So if we'll do print(i) it would print out the line where Bob is.
Output: 4
As long as you use a for loop to get every object!
v is the object itself.
Let's say yet again that Mark is inside the table.
so v would be counted as Mark himself.
if we would do print(v) it will print out the name,string etc. of the object!
Output: Mark
]]