Title here
Summary here
Structs in Lua
Lua’s tables serve a similar purpose to structs in other languages. They’re used for grouping data together to form records.
This person table has name and age fields.
person = {name = "", age = 0}In Lua, you can create new instances of the table like this:
function newPerson(name)
local p = {name = name, age = 42}
return p
endHere’s the full example translated to Lua, including the main function:
-- Define the person table
person = {name = "", age = 0}
-- Function to create a new person
function newPerson(name)
local p = {name = name, age = 42}
return p
end
-- Main function demonstrating how to use the person table
function main()
-- Create new person instances
print({name = "Bob", age = 20})
print({name = "Alice", age = 30})
print({name = "Fred"})
-- Create a person and output a pointer-like behavior
ann = {name = "Ann", age = 40}
print(ann)
-- Using the constructor function
jon = newPerson("Jon")
print(jon)
-- Accessing fields
local s = {name = "Sean", age = 50}
print(s.name)
local sp = s
print(sp.age)
-- Updating struct fields
sp.age = 51
print(sp.age)
-- Using an anonymous struct (table)
local dog = {
name = "Rex",
isGood = true
}
print(dog)
end
main()Output explanation:
print function to output values. When printing tables, a custom function can be written to format the output as Lua’s native print function does not format tables by default.Now, let’s run the main function and see the output.
$ lua structs.luaOutput:
table: name = Bob, age = 20
table: name = Alice, age = 30
table: name = Fred, age = 0
table: name = Ann, age = 40
table: name = Jon, age = 42
Sean
50
51
table: name = Rex, isGood = trueAfter understanding how Lua handles structs using tables, we can now delve deeper into other data handling techniques in Lua.
Comments powered by Disqus