كيفية إزالة إدخال جدول LUA بواسطة مفتاحه؟
سؤال
لدي جدول لوا أستخدمه كـ hashmap ، أي مع مفاتيح السلسلة:
local map = { foo = 1, bar = 2 }
أرغب في "انبثاق" عنصر من هذا الجدول الذي حدده مفتاحه. هناك table.remove()
الطريقة ، ولكن لا يستغرق سوى فهرس العنصر لإزالة (أي رقم) وليس مفتاح عام. أود أن أكون قادرًا على القيام به table.remove(map, 'foo')
وهنا كيف قمت بتنفيذها:
function table.removekey(table, key)
local element = table[key]
table[key] = nil
return element
end
هل هناك طريقة أفضل للقيام بذلك؟
المحلول
لا ، تعيين قيمة المفتاح إلى nil
هي الطريقة المقبولة لإزالة عنصر في جزء hashmap من الجدول. ما تفعله هو قياسي. ومع ذلك ، أوصي بعدم تجاوز table.remove()
- بالنسبة لجزء الصفيف من الجدول ، تتضمن وظيفة الجدول الافتراضي. إذا كنت تريد إضافة وظيفتك إلى table
مجموعة الوظائف ، ثم ربما أذكرها شيئًا مثل table.removekey()
أو بعض هكذا.
لا تنتمي إلى StackOverflow