פונקציות שאינן מחזירות ערך
חלק מהיחידה מבוא ל-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 רגילה.
אתגר
קלצרו פונקציה בשם displayWelcome שמקבלת userName: string ויש לה טיפוס החזרה מפורש (). עליה להדפיס: "Welcome to our application, [userName]!"
צרו פונקציה בשם logError שמקבלת errorMessage: string עם טיפוס החזרה (). עליה להדפיס: "ERROR: [errorMessage]"
צרו פונקציה בשם processData שאינה מקבלת פרמטרים, עם טיפוס החזרה (). עליה להדפיס "Processing data..." ולאחר מכן "Data processing complete." בשורה הבאה.
קראו להן בסדר הבא:
displayWelcome("Alice")processData()logError("Invalid input detected")displayWelcome("Bob")
נסו בעצמכם
-- כתבו כאן קוד
-- displayWelcome(userName: string): ()
-- logError(errorMessage: string): ()
-- processData(): ()
-- לאחר מכן קראו ל: displayWelcome("Alice"), processData(),
-- logError("Invalid input detected"), displayWelcome("Bob")
השיעור הזה כולל חידון קצר. התחילו את השיעור כדי לענות עליו ולעקוב אחרי ההתקדמות.
כל השיעורים ביחידה מבוא ל-Luau
1תחילת העבודה עם Luau
מהו Luau?למה להשתמש ב-Luau?קוד Luau הראשון שלכםבדיקת טיפוסים ומצבי שגיאהסיכום: מבוא ל-Luau4עבודה עם פונקציות
הגדרת טיפוסים לפרמטרים ולערכי החזרההגדרת טיפוסים לפונקציות אנונימיותפונקציות שאינן מחזירות ערךפרמטרים אופציונלייםערכי ברירת מחדל לפרמטריםפונקציות עם מספר משתנה של ארגומנטיםהגדרת טיפוסי פונקציותסיכום: פונקציות עם טיפוסים2טיפוסי ליבה
טיפוסים בסיסיים: num, str, boolהטיפוס 'any': פתרון מילוטהטיפוס 'unknown'טיפוסי Nil ואופציונלייםהסקת טיפוסים בפעולההצהרות טיפוסים מפורשותסיכום: תרגול טיפוסי ליבה5כינויים, איחודים וחיתוכים
כינויים לסוגים פרימיטיבייםטיפוסי איחודעבודה עם טיפוסי איחודטיפוסים ליטרלייםטיפוסי חיתוךשילוב כינויים לסוגיםסיכום: שילובים מתקדמים של טיפוסים3טבלאות מטיפוס מוגדר: מערכים ומפות
מערכים מטיפוס מוגדרהוספת איברים וקריאתםמהו טיפוס Map?הצהרה על מפות וגישה אליהןמעבר על טבלאותטבלאות בעלות מבנים מעורביםמערכים רב־ממדיים מטיפוס מוגדרtable.unpack ו־Varargsסיכום: מערכים ומפותתרגלו בעצמכם: קומפיילר Luau אונליין