إزالة الأزواج باستخدام nil
جزء من قسم Fundamentals في رحلة Lua على Coddy — الدرس 69 من 90.
عندما تقوم بتعيين nil لمفتاح، تقوم Lua فعلياً بإزالة زوج (المفتاح-القيمة) هذا من الجدول:
local settings = {
["volume"] = 80,
["difficulty"] = "normal",
["music"] = true
}
-- إزالة إعداد الصعوبة
settings.difficulty = nil
-- الآن مفتاح الصعوبة لم يعد موجوداً في الجدوليمكنك استخدام إما تدوين النقطة (dot notation) أو تدوين الأقواس (bracket notation) لإزالة زوج مفتاح-قيمة. كلاهما settings.difficulty = nil و settings["difficulty"] = nil يعملان بنفس الطريقة تماماً.
بعد تعيين nil لمفتاح، يختفي ذلك المفتاح تماماً من الجدول. إذا حاولت الوصول إليه لاحقاً، ستحصل على nil كـ نتيجة، تماماً كما لو أن المفتاح لم يكن موجوداً في المقام الأول.
التحدي
سهلقم بإنشاء نظام تهيئة ألعاب يوضح كيفية إزالة الإعدادات غير المرغوب فيها من جدول بنمط القاموس (dictionary-style table). ابدأ بإنشاء جدول باسم gameConfig يحتوي على أزواج المفتاح والقيمة التالية: يجب تعيين السلسلة النصية "high" للمفتاح ["graphics"]، وتعيين الرقم 75 للمفتاح ["sound"]، وتعيين السلسلة النصية "normal" للمفتاح ["difficulty"]، وتعيين القيمة المنطقية true للمفتاح ["debug"].
بعد إنشاء جدول التهيئة الأولي، قم بإزالة إعداد debug عن طريق تعيين القيمة nil له باستخدام تدوين النقطة (dot notation). ثم قم بطباعة إعداد الصوت المتبقي للتحقق من أن الجدول لا يزال يحتوي على القيم الأخرى.
ورقة مرجعية
لإزالة زوج مفتاح-قيمة من جدول، قم بتعيين nil للمفتاح:
local settings = {
["volume"] = 80,
["difficulty"] = "normal",
["music"] = true
}
-- إزالة إعداد الصعوبة
settings.difficulty = nilيمكنك استخدام إما تدوين النقطة (dot notation) أو تدوين الأقواس (bracket notation):
settings.difficulty = nil
settings["difficulty"] = nilبعد تعيين nil، يختفي المفتاح تمامًا من الجدول. والوصول إليه يعيد nil.
جرّب بنفسك
-- TODO: اكتب كودك هنا
-- أنشئ جدول gameConfig مع أزواج المفتاح والقيمة المطلوبة
-- قم بإزالة إعداد debug باستخدام تدوين النقطة (dot notation)
-- اطبع إعداد soundيتضمن هذا الدرس اختبارًا قصيرًا. ابدأ الدرس للإجابة عليه وتتبّع تقدمك.
جميع دروس Fundamentals
4المعاملات 2: العمليات العلائقية والمنطقية
معاملات التساويالمعاملات العلائقيةالمعامل 'and'المعامل 'or'المعامل 'not'التقييم قصير الدائرةقيم Truthy و Falsyمراجعة - المنطق البسيط10الجداول الجزء 1: نمط القائمة
ما هو الجدول؟إنشاء جدولالوصول إلى العناصر عبر الفهرستعديل العناصر عبر الفهرسمعامل الطول '#'table.insert()table.remove()ملخص - إدارة أعضاء الفريق13مشروع: متجر جرعات بسيط
إعداد المشروعإضافة جرعة2المتغيرات وأنواع البيانات
ما هو المتغير؟الأرقامالسلاسل النصيةالقيم المنطقيةالقيمة 'nil'الدالة type()قواعد التسميةمراجعة - ملف الشخصية5الإخراج الأساسي
طباعة القيم الحرفيةطباعة المتغيراتطباعة قيم متعددةدمج النصوص والمتغيراتدالة tostring()الإدخال (Input)التحويل (Cast)مراجعة - تقرير الحالةمراجعة - حتى 1208أساسيات معالجة النصوص
string.len()string.upper و string.lowerstring.sub()string.rep()string.find()مراجعة - تنسيق اسم المستخدم11الجداول 2: بأسلوب القاموس
أزواج (مفتاح-قيمة)إنشاء جداول بأسلوب القاموسالوصول - تدوين الأقواسالوصول بتدوين النقطةإضافة وتعديل الأزواجإزالة الأزواج باستخدام nilمراجعة - خصائص العناصر3المعاملات 1: العمليات الحسابية والدمج
المعاملات الحسابيةمعامل باقي القسمةمعامل الأسدمج النصوصأولوية المعاملاتملخص - حسابات بسيطة6مشروع: عرض إحصائيات الشخصية
رسالة ترحيبتعريف إحصائيات الشخصية9أساسيات الدوال
تعريف دالةاستدعاء دالةدوال مع معاملاتدوال بمعاملات متعددةجملة 'return'مراجعة - حاسبة المساحة12أساسيات الحلقات التكرارية
حلقة whileحلقة repeat-untilحلقة for الرقميةحلقة for مع خطوةجملة 'break'مراجعة - العد التنازلي