انواع داده در لوا

انواع داده لوا: nil، boolean، number، string، function، table و بررسی نوع با type()

لوا چند نوع داده دارد؟

لوا فقط ۸ نوع داده دارد — خیلی کمتر از اکثر زبان‌ها! این سادگی عمدی است:

نوعتوضیحمثال
nilنبودن مقدارlocal x = nil
booleanدرست یا غلطtrue, false
numberعدد (صحیح و اعشاری)42, 3.14
stringمتن"سلام"
functionتابعprint
tableساختار داده (آرایه + دیکشنری){1, 2, 3}
userdataداده C (برای جاسازی)—
threadکوروتین—

تابع type()

برای فهمیدن نوع هر مقدار، از تابع type() استفاده کنید:

print(type(nil))   -- nil
    print(type(true))  -- boolean
    print(type(42))    -- number
    print(type("سلام")) -- string
    print(type(print)) -- function
    print(type({}))    -- table

nil — هیچ

nil یعنی «هیچ» یا «تعریف‌نشده». متغیری که مقدار نداشته باشد nil است و اگر متغیری را nil کنید، عملاً حذف می‌شود:

local x
    print(x)        -- nil
    
    local y = 10
    y = nil         -- y حذف شد
    print(y)        -- nil

boolean — درست/غلط

فقط دو مقدار: true و false. اما نکته مهم:

در لوا فقط nil و false «نادرست» محسوب می‌شوند! عدد صفر و رشته خالی هم درست (truthy) هستند — برخلاف بسیاری از زبان‌ها!
if 0 then print("صفر هم درست است!") end
    if "" then print("رشته خالی هم درست است!") end

number — عدد

لوا بین عدد صحیح و اعشاری تمایز ذهنی زیادی قائل نمی‌شود؛ هر دو number هستند:

print(type(10))     -- number
    print(type(10.5))   -- number
    print(type(1e3))    -- number (1000)

string — رشته

رشته‌ها با نقل‌قول دوتایی یا تک‌گانه تعریف می‌شوند:

local a = "دوتایی"
    local b = 'تک‌گانه'
    print(a, b)   -- هر دو رشته هستند

table — پادشاه لوا

جدول تنها ساختار داده لواست و هم‌زمان می‌تواند آرایه، لیست، دیکشنری و حتی شیء باشد:

local arr = {10, 20, 30}              -- آرایه
    local dict = {name = "علی", age = 25} -- دیکشنری
    print(arr[1])       -- 10 (ایندکس از 1!)
    print(dict.name)    -- علی
جدول‌ها آن‌قدر مهم هستند که ۴ مبحث کامل از این دوره به آن‌ها اختصاص یافته است!

مقایسه با پایتون و جاوااسکریپت

مفهومLuaPythonJavaScript
هیچnilNonenull/undefined
آرایه/لیستtablelistArray
دیکشنریtabledictObject
شروع ایندکس100

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

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