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 = "[email protected]" 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

ModuleKey Functions
stringlen, sub, find, gsub, format, upper, lower
tableinsert, remove, sort, concat, unpack
mathfloor, ceil, sqrt, max, min, random, pi
ioread, write, open, close, lines
ostime, date, clock, exit, getenv