טיפוסי איחוד
חלק מהיחידה מבוא ל-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. בשיעור הבא תלמדי איך לעבוד בבטחה עם ערך של איחוד לאחר שיש לך אחד כזה.
אתגר
קלצרו פונקציה בשם printId שמקבלת id: number | string ומדפיסה אותו: סוג החזרה מפורש ().
הכריזו על משתנה בשם status מסוג string | number, מאותחל לערך "<code>active".
לאחר מכן, לפי הסדר:
- קראו ל-
printId(42) - קראו ל-
printId("<code>user123") - הדפיסו את
status - הקצו מחדש ל-
statusאת הערך200והדפיסו אותו שוב
ארבע שורות פלט בסך הכול.
נסו בעצמכם
-- כתבו כאן קוד
-- printId(id: number | string): ()
-- local status: string | number = הטקסט המדויק מההוראות
-- קראו ל־printId(42), ול־printId(הטקסט המדויק מההוראות),
-- הדפיסו את status, הקצו לו מחדש את 200, ואז הדפיסו שוב
השיעור הזה כולל חידון קצר. התחילו את השיעור כדי לענות עליו ולעקוב אחרי ההתקדמות.
כל השיעורים ביחידה מבוא ל-Luau
1תחילת העבודה עם Luau
מהו Luau?למה להשתמש ב-Luau?קוד Luau הראשון שלכםבדיקת טיפוסים ומצבי שגיאהסיכום: מבוא ל-Luau4עבודה עם פונקציות
הגדרת טיפוסים לפרמטרים ולערכי החזרההגדרת טיפוסים לפונקציות אנונימיותפונקציות שאינן מחזירות ערךפרמטרים אופציונלייםערכי ברירת מחדל לפרמטריםפונקציות עם מספר משתנה של ארגומנטיםהגדרת טיפוסי פונקציותסיכום: פונקציות עם טיפוסים2טיפוסי ליבה
טיפוסים בסיסיים: num, str, boolהטיפוס 'any': פתרון מילוטהטיפוס 'unknown'טיפוסי Nil ואופציונלייםהסקת טיפוסים בפעולההצהרות טיפוסים מפורשותסיכום: תרגול טיפוסי ליבה5כינויים, איחודים וחיתוכים
כינויים לסוגים פרימיטיבייםטיפוסי איחודעבודה עם טיפוסי איחודטיפוסים ליטרלייםטיפוסי חיתוךשילוב כינויים לסוגיםסיכום: שילובים מתקדמים של טיפוסים3טבלאות מטיפוס מוגדר: מערכים ומפות
מערכים מטיפוס מוגדרהוספת איברים וקריאתםמהו טיפוס Map?הצהרה על מפות וגישה אליהןמעבר על טבלאותטבלאות בעלות מבנים מעורביםמערכים רב־ממדיים מטיפוס מוגדרtable.unpack ו־Varargsסיכום: מערכים ומפותתרגלו בעצמכם: קומפיילר Luau אונליין