הגדרת טיפוסים לפונקציות אנונימיות
חלק מהיחידה מבוא ל-Luau במסלול ה-Lua של Coddy. שיעור 24 מתוך 80.
ב-Lua, פונקציות הן ערכים: אחסנת אותן במשתנים והעברת אותן הלאה: local f = function(x) return x * 2 end. לפונקציות האנונימיות האלה (ביטויי פונקציה) יש הערות טיפוס בדיוק כמו לפונקציות בעלות שם:
local double = function(x: number): number
return x * 2
end
local shout = function(text: string): string
return string.upper(text) .. "!"
endהפרמטרים מקבלים name: type בתוך הסוגריים, וטיפוס ההחזרה מופיע אחרי הסוגר הסוגר: ההבדל היחיד מפונקציה בעלת שם הוא שלמילת המפתח function אין שם, והביטוי כולו משויך למשתנה.
אם נתקלת ב-JavaScript או ב-TypeScript, שים לב של-Luau אין פונקציות חץ. אין תחביר =>. כל ביטוי פונקציה נכתב באמצעות function ... end, בין שהוא ארוך ובין שהוא קצר.
לאחר שהפונקציה משויכת למשתנה, קוראים לה באמצעות המשתנה כמו לכל פונקציה: double(21) מחזירה 42, והבודק מוודא שכל קריאה תואמת להערות הטיפוס שכתבת.
אתגר
קלאחסן פונקציות מטיפוס מוגדר במשתנים מקומיים.
- כתוב מחדש את
subtractבתורlocal subtract = function(a: number, b: number): number, תוך שמירה על הגוף שלה. - הוסף את
local isPositive = function(num: number): boolean, שמחזירה אתnum > 0. - הדפס את
subtract(10, 3)ואתisPositive(-5).
לחץ על הרצת קוד: הפלט מציג את 7 ואת false.
נסו בעצמכם
-- שכתבו זאת כפונקציה אנונימית השמורה במשתנה מקומי
function subtract(a: number, b: number): number
return a - b
end
כל השיעורים ביחידה מבוא ל-Luau
1תחילת העבודה עם Luau
מהו Luau?למה להשתמש ב-Luau?קוד Luau הראשון שלכםבדיקת טיפוסים ומצבי שגיאהסיכום: מבוא ל-Luau4עבודה עם פונקציות
הגדרת טיפוסים לפרמטרים ולערכי החזרההגדרת טיפוסים לפונקציות אנונימיותפונקציות שאינן מחזירות ערךפרמטרים אופציונלייםערכי ברירת מחדל לפרמטריםערכי ברירת מחדל לבוליאניםפונקציות עם מספר משתנה של ארגומנטיםהגדרת טיפוסי פונקציותסיכום: פונקציות עם טיפוסים2טיפוסי ליבה
מספר, מחרוזת ובוליאניהטיפוס 'any': פתרון מילוטהטיפוס 'unknown'טיפוסי Nil ואופציונלייםהסקת טיפוסים בפעולההצהרות טיפוס מפורשותסיכום: תרגול בטיפוסי ליבה5כינויים, איחודים וחיתוכים
כינויים לסוגים פרימיטיבייםטיפוסי איחודעבודה עם טיפוסי איחודטיפוסים ליטרלייםטיפוסי חיתוךשילוב כינויים לסוגיםסיכום: שילובים מתקדמים של טיפוסים3טבלאות מטיפוס מוגדר: מערכים ומפות
מערכים מטיפוס מוגדרהוספה וקריאה של איבריםמהו טיפוס Map?הגדרה וגישה למפותמעבר על טבלאותטבלאות במבנים מעורביםקריאת רשתבניית רשתtable.unpackסיכום: מערכים ומפותתרגלו בעצמכם: קומפיילר Luau אונליין