Menu
Coddy logo textTech

טיפוסי איחוד

חלק מהיחידה מבוא ל-Luau במסלול ה-Lua של Coddy. שיעור 31 מתוך 73.

לפעמים סוג אחד לא מספיק. ייתכן שמזהה משתמש יגיע בתור "user123" או בתור 42. ב-Lua רגיל פשוט היית מקווה לטוב; Luau נותנת לך טיפוסי איחוד: הקו האנכי | נקרא "או":

local userId: number | string

userId = "user123"  -- ✓ מחרוזת מותרת
userId = 42          -- ✓ מספר מותר
userId = true        -- ✗ שגיאת טיפוס: boolean אינו חלק מהאיחוד

המשתנה יכול להכיל כל אחד מהחברים באיחוד, ורק אותם. זה ההבדל המכריע מ-any: האיחוד נשאר קפדני לגבי מה שמותר, ובו בזמן מעניק לך את הגמישות הדרושה.

איחודים שימושיים במיוחד לפרמטרים של פונקציות שמקבלים כמה פורמטים של קלט:

function printId(id: number | string): ()
    print(id)
end

printId(42)          -- עובד עם מספר
printId("user123")   -- עובד עם מחרוזת

את string? את כבר מכירה. זה היה האיחוד הראשון שלך! זהו פשוט קיצור של string | nil. בשיעור הבא תלמדי איך לעבוד בבטחה עם ערך של איחוד לאחר שיש לך אחד כזה.

challenge icon

אתגר

קל

צרו פונקציה בשם printId שמקבלת id: number | string ומדפיסה אותו: סוג החזרה מפורש ().

הכריזו על משתנה בשם status מסוג string | number, מאותחל לערך "<code>active".

לאחר מכן, לפי הסדר:

  1. קראו ל-printId(42)
  2. קראו ל-printId("<code>user123")
  3. הדפיסו את status
  4. הקצו מחדש ל-status את הערך 200 והדפיסו אותו שוב

ארבע שורות פלט בסך הכול.

נסו בעצמכם

-- כתבו כאן קוד
-- printId(id: number | string): ()
-- local status: string | number = הטקסט המדויק מההוראות
-- קראו ל־printId(42), ול־printId(הטקסט המדויק מההוראות),
-- הדפיסו את status, הקצו לו מחדש את 200, ואז הדפיסו שוב
quiz iconבחנו את עצמכם

השיעור הזה כולל חידון קצר. התחילו את השיעור כדי לענות עליו ולעקוב אחרי ההתקדמות.

כל השיעורים ביחידה מבוא ל-Luau

תרגלו בעצמכם: קומפיילר Luau אונליין