Menu
CoddyTech

פונקציות שאינן מחזירות ערך

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

פונקציות רבות לא מחשבות ערך. הן עושות משהו: מדפיסות הודעה, מעדכנות טבלה, שומרות מצב. ב-Luau אפשר לסמן שפונקציה לא מחזירה כלום באמצעות טיפוס ההחזרה הריק ():

local function logMessage(message: string): ()
    print(message)
end

local counter = 0
local function incrementCounter(): ()
    counter += 1
end

אם נתקלת ב-TypeScript, () ממלא את התפקיד של void, אבל הכתיב ב-Luau הוא זוג סוגריים ריקים, שפירושו המילולי הוא "אפס ערכי החזרה".

הסימון הוא אופציונלי: השמט אותו, ו-Luau יסיק שהפונקציה לא מחזירה כלום. כתיבה מפורשת של : () מתעדת את כוונתך: כל מי שקורא את החתימה יודע שקוראים לפונקציה הזאת בגלל תופעות הלוואי שלה, ולא בגלל התוצאה שלה.

בזמן ריצה שום דבר לא משתנה (כרגיל): פונקציה ללא ערך return פשוט מחזירה nil אם מנסים לשמור את התוצאה שלה במשתנה: בדיוק כמו ב-Lua רגילה.

challenge icon

אתגר

קל

כתבו שתי פונקציות שמדפיסות ואינן מחזירות דבר.

  1. כתבו local function displayWelcome(userName: string): () שמדפיסה `Welcome, {userName}!`.
  2. כתבו local function logError(errorMessage: string): () שמדפיסה `ERROR: {errorMessage}`.
  3. קראו ל־displayWelcome("Alice"), ואז ל־logError("Invalid input").

לחצו על הרצת קוד: הפלט מציג את Welcome, Alice! ואת ERROR: Invalid input.

נסו בעצמכם

-- 1) displayWelcome(userName: string): ()
-- 2) logError(errorMessage: string): ()
-- 3) יש לקרוא ל-displayWelcome("Alice"), ואז ל-logError("Invalid input")

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

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