Lua Basics Guide
Basics
-- Variables (global by default)
x = 10
local y = 20 -- local scope
-- String
local s = "hello " .. "world" -- concatenation
local len = #s -- length
-- Multiple return values
local function minmax(a, b)
return math.min(a,b), math.max(a,b)
end
local lo, hi = minmax(5, 3) -- lo=3, hi=5
Tables (Arrays & Maps)
-- Array (1-indexed!)
local arr = {10, 20, 30}
print(arr[1]) -- 10
table.insert(arr, 40)
table.remove(arr, 1)
-- Map / dictionary
local user = {name = "Alice", age = 28}
user.email = "alice@example.com"
print(user["name"])
-- Iterate
for i, v in ipairs(arr) do print(i, v) end
for k, v in pairs(user) do print(k, v) end
OOP with Metatables
local Animal = {}
Animal.__index = Animal
function Animal.new(name, sound)
return setmetatable({name=name, sound=sound}, Animal)
end
function Animal:speak()
print(self.name .. " says " .. self.sound)
end
local dog = Animal.new("Dog", "Woof")
dog:speak() -- Dog says Woof
Standard Library
| Module | Key Functions |
|---|---|
| string | len, sub, find, gsub, format, upper, lower |
| table | insert, remove, sort, concat, unpack |
| math | floor, ceil, sqrt, max, min, random, pi |
| io | read, write, open, close, lines |
| os | time, date, clock, exit, getenv |