Menu
CoddyTech

הגדרת טיפוסים לפונקציות אנונימיות

חלק מהיחידה מבוא ל-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, והבודק מוודא שכל קריאה תואמת להערות הטיפוס שכתבת.

challenge icon

אתגר

קל

אחסן פונקציות מטיפוס מוגדר במשתנים מקומיים.

  1. כתוב מחדש את subtract בתור local subtract = function(a: number, b: number): number, תוך שמירה על הגוף שלה.
  2. הוסף את local isPositive = function(num: number): boolean, שמחזירה את num > 0.
  3. הדפס את subtract(10, 3) ואת isPositive(-5).

לחץ על הרצת קוד: הפלט מציג את 7 ואת false.

נסו בעצמכם

-- שכתבו זאת כפונקציה אנונימית השמורה במשתנה מקומי
function subtract(a: number, b: number): number
    return a - b
end

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

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