Table بهعنوان رکورد
کلیدهای نامدار برای دادهٔ ساختیافته خوانایی میدهند.
local user = { id = 7, name = "Ada", active = true,}print(user.name)
مرجع سریع Lua برای جدولها، توابع، شرطها، حلقهها و ماژولها. table ساختار مرکزی Lua برای فهرست و نگاشت است؛ `ipairs` برای توالی و `pairs` برای کلیدهای عمومی است و ترتیب دومی تضمینشده نیست. local را برای محدودکردن scope بهکار ببرید. nil و false تنها مقدارهای false در شرط هستند؛ این تفاوت در کنترل جریان مهم است. از این صفحه بهعنوان مرجع سریع استفاده کنید و مثالها و نکتهها را با نسخهٔ ابزار، نیاز و شرایط واقعی پروژهٔ خود تطبیق دهید.
کلیدهای نامدار برای دادهٔ ساختیافته خوانایی میدهند.
local user = { id = 7, name = "Ada", active = true,}print(user.name)برای دنبالهٔ عددی پیوسته از ipairs استفاده کنید.
local colors = { "red", "green", "blue" }for index, color in ipairs(colors) do print(index, color)endتابع میتواند چند مقدار برگرداند؛ قرارداد ترتیب آنها را روشن نگه دارید.
local function divide(a, b) if b == 0 then return nil, "division by zero" end return a / b, nilendاز مقدار پیشفرض آشکار برای nil استفاده کنید.
local display_name = nameif display_name == nil or display_name == "" then display_name = "Guest"endpairs برای پیمایش map مناسب است، نه ترتیب نمایشی.
for key, value in pairs(settings) do print(key, value)endماژول معمولاً یک table از API عمومی را برمیگرداند.
local M = {}function M.clamp(value, minimum, maximum) return math.max(minimum, math.min(maximum, value))endreturn M__index میتواند مقدارهای پیشفرض را از table دیگری فراهم کند.
local defaults = { theme = "system", retries = 3 }local options = setmetatable({ retries = 5 }, { __index = defaults })print(options.theme)print(options.retries)pcall موفقیت و خروجی یا خطا را بهصورت جدا برمیگرداند.
local ok, result = pcall(function() return decode(payload)end)if not ok then print("decode failed:", result)endcoroutine اجرای تابع را با yield متوقف و بعداً ادامه میدهد.
local worker = coroutine.create(function() coroutine.yield("waiting") return "done"end)print(coroutine.resume(worker))print(coroutine.resume(worker))متغیر محلی را با local تعریف کنید تا ناخواسته global نشود.
مقدار تهی nil است و مقدارهای false و nil در شرط false محسوب میشوند.
جدول با {} هم آرایهمانند و هم نگاشت کلید-مقدار است.
اندیس آرایهمانند عموماً از 1 آغاز میشود.
تابع: local function add(a, b) return a + b end
شرط با if ... then ... elseif ... else ... end نوشته میشود.
حلقهها: for i = 1, n do و while condition do.
طول جدول #t برای بخش ترتیبی مناسب است؛ جدول sparse را جداگانه مدیریت کنید.
ماژولها را با الگوی require پروژه بارگذاری کنید.
مقدارهای nil، مرز حلقه و ورودیهای نامعتبر را در تست پوشش دهید.
جدول در Lua هم آرایه و هم map است؛ پیمایش ipairs و pairs رفتار و ترتیب یکسانی ندارند.
برای مدیریت خطا از pcall در مرز مناسب استفاده کنید و خطا را بیصدا نادیده نگیرید.