0Pricing
Lua Academy · درس

دوال مكتبة table

طبّق table.insert وremove وsort وconcat وmove وunpack

دوال مكتبة table درس مجاني في Lua Academy على CoddyKit. هذا هو الدرس 2 من أصل 4. يمكنك قراءة الدرس كاملاً أدناه مجاناً — ثم تمرن عليه مباشرة في المتصفح باستخدام محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7. هذا الدرس جزء من مسار التعلم في Lua Academy، وتقدمك يتزامن عبر الويب وتطبيق CoddyKit. تتضمن دورة Lua Academy 4 دروس في المجموع.

الوحدة table

توفر الوحدة table دوال لمعالجة جداول Lua المستخدمة كمصفوفات، مثل: insert وremove وsort وconcat وmove وunpack.

table.insert

تلحق table.insert(t, val) العنصر بنهاية الجدول. أما table.insert(t, pos, val) فتدرجه في الموضع المحدد، مع إزاحة العناصر اللاحقة إلى اليمين.

local t = {"a", "b", "d"}
table.insert(t, "e")       -- append
table.insert(t, 3, "c")   -- insert at index 3
print(table.concat(t, ","))  -- a,b,c,d,e

table.remove

تزيل table.remove(t) العنصر الأخير وتُرجعه. أما table.remove(t, pos) فتزيل العنصر في الموضع المحدد وتزيح العناصر إلى اليسار.

local t = {"x", "y", "z"}
print(table.remove(t))     -- z
print(table.remove(t, 1))  -- x
print(table.concat(t))     -- y

table.sort

ترتّب table.sort(t, cmp) الجدول في موضعه. ومن دون cmp تستخدم <. يجب أن يحقق المقارن ترتيبًا جزئيًا صارمًا.

local t = {3, 1, 4, 1, 5, 9, 2, 6}
table.sort(t)
print(table.concat(t, " "))  -- 1 1 2 3 4 5 6 9

table.concat

تجمع table.concat(t, sep, i, j) عناصر المصفوفة في سلسلة نصية. يجب أن تكون العناصر سلاسل نصية أو أعدادًا.

local words = {"Hello", "world", "from", "Lua"}
print(table.concat(words, " "))  -- Hello world from Lua

table.move

تنسخ table.move(a1, f, e, t, a2) العناصر من a1[f..e] إلى a2 بدءًا من t. وإذا حُذفت a2، يتم النسخ داخل a1.

local src = {1,2,3,4,5}
local dst = table.move(src, 2, 4, 1, {})
print(table.concat(dst, ","))  -- 2,3,4

table.unpack

تُرجع table.unpack(t, i, j) العناصر من t[i] إلى t[j] كقيم منفصلة. والقيمة الافتراضية: من 1 إلى #t.

local t = {10, 20, 30}
print(table.unpack(t))         -- 10  20  30
local a, b = table.unpack(t, 1, 2)
print(a, b)                    -- 10  20

table.pack

تجمع table.pack(...) الوسيطات المتغيرة في جدول يحوي حقلًا n يتضمن العدد الإجمالي، بما في ذلك قيم nil.

local function allArgs(...)
  local t = table.pack(...)
  print("count:", t.n)
  return t
end
allArgs(1, nil, 3)  -- count: 3

محاكاة قائمة انتظار باستخدام insert/remove

استخدم table.insert لإضافة العناصر إلى نهاية قائمة الانتظار، وtable.remove(t, 1) لإزالتها من المقدمة (ملاحظة: التكلفة O(n)).

محاكاة مكدس

استخدم table.insert للدفع، وtable.remove (من دون موضع) للسحب؛ وكلتا العمليتين بتكلفة O(1).

استخدام table.move للإزاحة

أزح جميع العناصر إلى اليسار بمقدار واحد باستخدام table.move(t, 2, #t, 1)، ثم عيّن قيمة nil للعنصر الأخير.

local t = {1,2,3,4,5}
table.move(t, 2, #t, 1)
t[#t] = nil
print(table.concat(t, ","))  -- 2,3,4,5

سؤال حول مكتبة table

ماذا تُرجع table.pack(1, nil, 3)؟

مراجعة: مكتبة table

توفر مكتبة table دوال insert وremove وsort وconcat وmove وunpack وpack. وتلبي هذه الدوال معًا جميع احتياجات معالجة المصفوفات الشائعة بكفاءة.

الأسئلة الشائعة

هل درس «دوال مكتبة table» مجاني؟

نعم — نص درس «دوال مكتبة table» كامل متاح مجاناً هنا على الويب. لتمرينه بشكل تفاعلي (محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7) وفتح باقي دورة Lua Academy، انتقل إلى CoddyKit PRO. تتضمن دورة Lua Academy 4 دروس في المجموع.

ماذا ستتعلم في «دوال مكتبة table»؟

طبّق table.insert وremove وsort وconcat وmove وunpack تتمرن على Lua Academy مع أكواد عملية تشغلها مباشرة في المتصفح، ومدرس ذكاء اصطناعي متاح 24/7 يجيب على أسئلتك أثناء عملك.

هل أحتاج إلى خبرة سابقة لأبدأ Lua Academy؟

لا تُشترط خبرة سابقة. Lua Academy على CoddyKit منظم للمبتدئين حتى المتقدمين، لذا يمكنك البدء من هنا أو من البداية والتقدم بسرعتك الخاصة. هذا هو الدرس 2 من أصل 4.

كم من الوقت يستغرق درس «دوال مكتبة table»؟

معظم دروس CoddyKit تستغرق حوالي 5–10 دقائق. كل منها موجز وتفاعلي، لذا تحرز تقدماً مستمراً وتستأنف من حيث توقفت عبر الويب والتطبيق.

هل يمكنني كتابة وتشغيل أكواد في درس Lua Academy هذا؟

نعم. كل درس في Lua Academy يتضمن محرر أكواد مدمج، لذا تكتب وتشغل أكواداً حقيقية مباشرة في متصفحك وتحصل على تعليقات فورية من الذكاء الاصطناعي — بدون إعداد محلي.

جميع الدروس في هذه الدورة

  1. دوال مكتبة math
  2. دوال مكتبة table
  3. مكتبتا os وio
  4. مكتبة debug
← العودة إلى Lua Academy