Menu
Coddy logo textTech

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

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

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

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

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

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

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

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

challenge icon

אתגר

קל

צרו פונקציה בשם displayWelcome שמקבלת userName: string ויש לה טיפוס החזרה מפורש (). עליה להדפיס: "Welcome to our application, [userName]!"

צרו פונקציה בשם logError שמקבלת errorMessage: string עם טיפוס החזרה (). עליה להדפיס: "ERROR: [errorMessage]"

צרו פונקציה בשם processData שאינה מקבלת פרמטרים, עם טיפוס החזרה (). עליה להדפיס "Processing data..." ולאחר מכן "Data processing complete." בשורה הבאה.

קראו להן בסדר הבא:

  1. displayWelcome("Alice")
  2. processData()
  3. logError("Invalid input detected")
  4. displayWelcome("Bob")

נסו בעצמכם

-- כתבו כאן קוד
-- displayWelcome(userName: string): ()
-- logError(errorMessage: string): ()
-- processData(): ()
-- לאחר מכן קראו ל: displayWelcome("Alice"), processData(),
-- logError("Invalid input detected"), displayWelcome("Bob")
quiz iconבחנו את עצמכם

השיעור הזה כולל חידון קצר. התחילו את השיעור כדי לענות עליו ולעקוב אחרי ההתקדמות.

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

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