سینتکس لوا

ساختار کد لوا، بلوک‌ها با end، کلمات رزرو شده و قوانین پایه نوشتن کد

سینتکس یعنی چه؟

سینتکس (Syntax) یعنی قواعد نوشتن کد — مثل دستور زبان در زبان‌های انسانی. لوا یکی از ساده‌ترین سینتکس‌های دنیا را دارد و به همین دلیل یادگیری‌اش سریع است.

ساختار پایه

هر برنامه لوا از مجموعه‌ای از دستورات (Statements) تشکیل شده که خط به خط اجرا می‌شوند:

local x = 10          -- تعریف متغیر
print(x)              -- چاپ
if x > 5 then         -- شرط
  print("بزرگ است")   -- بدنه شرط
end                   -- پایان شرط

بلوک‌ها و کلمه end

برخلاف پایتون (که از تورفتگی استفاده می‌کند) یا جاوااسکریپت (که از آکولاد استفاده می‌کند)، لوا بلوک‌های خود را با کلمه کلیدی end می‌بندد:

-- شرط
if condition then
  -- کد
end

-- حلقه
for i = 1, 10 do
  -- کد
end

-- تابع
function myFunc()
  -- کد
end

-- while
while condition do
  -- کد
end
الگوی ذهنی ساده: هر بلوک با چیزی شروع می‌شود که به then یا do ختم شود، و با end تمام می‌شود!

کلمات رزرو شده

لوا فقط ۲۱ کلمه رزرو شده دارد که نمی‌توانید از آن‌ها به‌عنوان نام متغیر استفاده کنید:

دستهکلمات
شرط و منطقand, or, not, true, false, nil
شرط‌هاif, then, elseif, else
حلقه‌هاfor, while, do, repeat, until, in
پرشbreak, goto
توابعfunction, return, local
پایان بلوکend

حساسیت به حروف

لوا حساس به حروف بزرگ و کوچک (case-sensitive) است:

print("درست")     -- تابع درست
-- Print("غلط")   -- خطا! تابعی به نام Print نداریم

local age = 20
local Age = 30    -- این دو متغیر متفاوت هستند!

نقطه‌ویرگول اختیاری است

در لوا نقطه‌ویرگول (;) لازم نیست، اما اگر دوست دارید می‌توانید بنویسید:

print("سلام")
print("دنیا");     -- نقطه‌ویرگول مشکلی ایجاد نمی‌کند
print("لوا")

تورفتگی (Indentation)

برخلاف پایتون، تورفتگی در لوا اجباری نیست — اما برای خوانایی کد حتماً از آن استفاده کنید:

-- بد خوانا (اما صحیح!)
if 5 > 3 then print("بزرگتر") end

-- خوانا ✅
if 5 > 3 then
  print("بزرگتر")
end

نام‌گذاری شناسه‌ها (Identifiers)

خطاهای رایج سینتکس

-- فراموش کردن end
if true then
  print("سلام")
-- end جا افتاده! ❌

-- فراموش کردن then
if true
  print("سلام")
end
-- then جا افتاده! ❌
اگر خطای 'end' expected گرفتید، یعنی جایی یک end یا then/do جا انداخته‌اید. از تورفتگی صحیح استفاده کنید تا بلوک‌ها را راحت ببینید.

این مبحث بخشی از دوره آموزش کامل لوا است.

ابزارهای مرتبط