פרמטרים אופציונליים
חלק מהיחידה מבוא ל-Luau במסלול ה-Lua של Coddy. שיעור 26 מתוך 80.
ב-Lua רגילה אפשר היה תמיד להשמיט ארגומנטים: אלה שחסרו הפכו בשקט ל-nil, ושכחה לטפל בכך הייתה מקור קלאסי לבאגים. Luau הופכת את האפשרות הזו למפורשת: הוסיפו ? לטיפוס של פרמטר כדי לסמן אותו כאופציונלי.
function greet(name: string, title: string?): string
if title then
return `{title} {name}`
end
return `Hello, {name}`
end
print(greet("Ada")) -- שלום, Ada
print(greet("Ada", "Dr.")) -- Dr. Adastring? פירושו "string או nil". מי שקוראים לפונקציה יכולים להעביר מחרוזת או להשמיט את הארגומנט לחלוטין; פרמטרים ללא ? הם חובה, והבודק מסמן קריאות שמשמיטות אותם.
בתוך הפונקציה, פרמטר אופציונלי עשוי להיות nil, לכן יש לבדוק אותו לפני השימוש: if title then ... end היא התבנית המקובלת. אם מדלגים על הבדיקה ומשרשרים nil למחרוזת, מתקבלת אותה שגיאת זמן ריצה ש-Lua תמיד נתנה; בודק הטיפוסים מזהיר אתכם קודם.
אתגר
קלכתבו פונקציה לפרופיל שבה שם התצוגה הוא אופציונלי.
- כתבו
local function createUserProfile(username: string, displayName: string?): string. - החזירו
`Profile: {displayName} (@{username})`כאשרdisplayNameניתן, אחרת`Profile: @{username}`. - הדפיסו
createUserProfile("john_doe", "John Doe")וגםcreateUserProfile("jane_smith").
לחצו על Run Code: הפלט מציג Profile: John Doe (@john_doe) ו-Profile: @jane_smith.
נסו בעצמכם
-- 1) createUserProfile(username: string, displayName: string?): string
-- 2) הדפס אותו עם שם תצוגה ובלעדיו
כל השיעורים ביחידה מבוא ל-Luau
1תחילת העבודה עם Luau
מהו Luau?למה להשתמש ב-Luau?קוד Luau הראשון שלכםבדיקת טיפוסים ומצבי שגיאהסיכום: מבוא ל-Luau4עבודה עם פונקציות
הגדרת טיפוסים לפרמטרים ולערכי החזרההגדרת טיפוסים לפונקציות אנונימיותפונקציות שאינן מחזירות ערךפרמטרים אופציונלייםערכי ברירת מחדל לפרמטריםערכי ברירת מחדל לבוליאניםפונקציות עם מספר משתנה של ארגומנטיםהגדרת טיפוסי פונקציותסיכום: פונקציות עם טיפוסים2טיפוסי ליבה
מספר, מחרוזת ובוליאניהטיפוס 'any': פתרון מילוטהטיפוס 'unknown'טיפוסי Nil ואופציונלייםהסקת טיפוסים בפעולההצהרות טיפוס מפורשותסיכום: תרגול בטיפוסי ליבה5כינויים, איחודים וחיתוכים
כינויים לסוגים פרימיטיבייםטיפוסי איחודעבודה עם טיפוסי איחודטיפוסים ליטרלייםטיפוסי חיתוךשילוב כינויים לסוגיםסיכום: שילובים מתקדמים של טיפוסים3טבלאות מטיפוס מוגדר: מערכים ומפות
מערכים מטיפוס מוגדרהוספה וקריאה של איבריםמהו טיפוס Map?הגדרה וגישה למפותמעבר על טבלאותטבלאות במבנים מעורביםקריאת רשתבניית רשתtable.unpackסיכום: מערכים ומפותתרגלו בעצמכם: קומפיילר Luau אונליין