Menu
CoddyTech

إضافة العناصر وقراءتها

جزء من قسم مقدمة إلى Luau في رحلة Lua على Coddy. الدرس 14 من 80.

أنت تكبّر جداول Lua وتصغّرها بالفعل باستخدام table.insert وtable.remove: فكلاهما يعمل بالطريقة نفسها تمامًا مع المصفوفات ذات الأنواع المحددة. والفرق هو أن Luau يتحقق الآن مما تُدرجه: فإضافة سلسلة نصية إلى مصفوفة من النوع {number} تُعلَّم أثناء الكتابة، بدلًا من اكتشافها بواسطة لاعب محتار وقت التشغيل.

local queue: {string} = {"save", "load"}
table.insert(queue, "quit")      -- أضف في النهاية
table.insert(queue, 1, "help")   -- أدرج في الموضع 1، مع إزاحة بقية العناصر
local last = table.remove(queue) -- يزيل العنصر الأخير ويُرجعه أيضًا

تُخرج table.remove(t) العنصر الأخير وتعيده إليك؛ أما table.remove(t, 1) فتحذف العنصر الأول وتزيح كل ما بعده إلى الأسفل. ولأن نوع المصفوفة هو {string}، تعرف Luau أن القيمة المُعادة سلسلة نصية.

القراءة مرنة بالقدر نفسه كما في Lua العادية: فالفهرس الذي لا يحتوي على شيء، مثل queue[0] أو queue[-1]، أو أي فهرس يتجاوز #queue، تُقيَّم قيمته بهدوء إلى nil. لا يُثار أي خطأ، لذا تحقّق من nil قبل استخدام قيمة لست متأكدًا من وجودها.

challenge icon

التحدي

سهل

وسّع قائمة الحركات ذات النوع المحدد وقلّصها.

  1. صرّح عن local moves: {string} = {"jump", "run"}.
  2. ألحِق "duck" باستخدام table.insert، ثم أدرج "crawl" في الموضع 1.
  3. خزّن table.remove(moves) في local removed، ثم اطبع removed و#moves وmoves[1] وmoves[10].

اضغط على تشغيل الكود: سيعرض الناتج duck و3 وcrawl وnil.

جرّب بنفسك

-- 1) صرّح عن moves: {string} بالقيمتين "jump" و"run"
-- 2) ألحِق "duck"، وأدرِج "crawl" في الموضع 1
-- 3) احذف الحركة الأخيرة، ثم اطبع القيم الأربع

جميع دروس مقدمة إلى Luau

تدرّب بنفسك: مترجم Luau عبر الإنترنت