Menu
CoddyTech

מערכים גנריים

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

גנריים נעשים שימושיים מאוד כשעובדים עם טבלאות. כבר כותבים מערכים מטופסים כך: {number} או {string}. בתוך פונקציה גנרית, סוג האיבר יכול להיות פשוט T, ו-{T} פירושו "מערך של כל סוג שיתברר ש-T הוא".

הנה הדוגמה הקלאסית: שליפת האיבר הראשון מכל מערך:

local function first<T>(items: {T}): T?
    return items[1]
end

מעבירים {string} ובודק הטיפוסים מסיק ש-T = string, ולכן התוצאה היא מחרוזת. מעבירים {number} והתוצאה היא מספר. פונקציה אחת מחליפה משפחה שלמה של עותקים, אחד לכל סוג.

שימו לב היטב לסוג ההחזרה: הוא T?, ולא T. מערך יכול להיות ריק, ואז items[1] הוא nil: הסוג האופציונלי שפגשתם קודם מציין זאת בכנות: "T או nil". בודק הטיפוסים ינחה את מי שקוראים לפונקציה לטפל במקרה של nil לפני השימוש בתוצאה, וכך בדיוק תופסים באגים בשפה מטופסת.

challenge icon

אתגר

קל

קבלו את האיבר הראשון מכל מערך.

  1. כתבו local function first<T>(items: {T}): T? שמחזירה את items[1].
  2. הכריזו על local fruits: {string} = {"apple", "banana"} ועל local empty: {number} = {}.
  3. הדפיסו את first(fruits), ואז את first(empty).

לחצו על הרצת קוד: הפלט מציג את apple ואת nil.

נסו בעצמכם

-- 1) first<T>(items: {T}): T?
-- 2) fruits: {string} ו-{number} ריק
-- 3) הדפיסו את first של כל אחד מהם

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

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