table.concat()
חלק מהיחידה לוגיקה וזרימת התוכנית במסלול ה-Lua של Coddy. שיעור 5 מתוך 54.
לפעמים צריך לשלב את כל האיברים בטבלה דמוית רשימה למחרוזת אחת. Lua מספקת את הפונקציה table.concat() במיוחד למטרה זו, וכך קל לצרף את איברי הטבלה באמצעות מפריד לבחירתך.
התחביר הבסיסי נראה כך:
local result = table.concat(myTable, separator)הנה דוגמה פשוטה עם רשימה של מילים:
local words = {"Hello", "from", "Lua"}
local sentence = table.concat(words, " ")
print(sentence) -- פלט: Hello from Luaאפשר גם לקבוע איזה חלק מהטבלה לצרף באמצעות העברת מיקומי התחלה וסיום כארגומנטים נוספים. הדבר שימושי כשברצונך לשלב רק רכיבים מסוימים:
local numbers = {"1", "2", "3", "4", "5"}
local partial = table.concat(numbers, "-", 2, 4)
print(partial) -- פלט: 2-3-4הפונקציה table.concat() פועלת אך ורק עם טבלאות בסגנון רשימה וממירה כל איבר למחרוזת לפני חיבורם.
אתגר
קלכתוב פונקציה buildPath שמקבלת טבלת folders ומחרוזת separator, ומחזירה מחרוזת נתיב אחת שבה כל התיקיות מחוברות באמצעות המפריד.
השתמש ב־table.concat() כדי לשלב את כל שמות התיקיות למחרוזת נתיב אחת.
פרמטרים:
folders(table): טבלה בסגנון רשימה שמכילה שמות תיקיות כמחרוזותseparator(string): התו או המחרוזת שישמשו בין שמות התיקיות (למשל,"/"או"\\")
ערך מוחזר: מחרוזת אחת שבה כל התיקיות מחוברות באמצעות המפריד (string)
נסו בעצמכם
function buildPath(folders, separator)
-- כתבו כאן קוד
end
השיעור הזה כולל חידון קצר. התחילו את השיעור כדי לענות עליו ולעקוב אחרי ההתקדמות.
כל השיעורים ביחידה לוגיקה וזרימת התוכנית
1איטרציה מתקדמת בטבלאות
איטרציה באמצעות pairs()איטרציה באמצעות ipairs()pairs() לעומת ipairs()סיכום – גיליון דמות2פונקציות נוספות של ספריית הטבלאות
table.concat()בניית טבלה ו־unpack()table.sort()מיון מותאם אישית באמצעות פונקציותסיכום – לוח שיאיםתרגלו בעצמכם: קומפיילר Lua אונליין