إضافة وتعديل الأزواج
جزء من قسم Fundamentals في رحلة Lua على Coddy — الدرس 68 من 90.
لإضافة زوج مفتاح-قيمة جديد أو تعديل زوج موجود، ما عليك سوى استخدام عامل التعيين إما بتدوين النقطة أو بتدوين الأقواس:
local player = {
["name"] = "Alex",
["level"] = 5
}
-- إضافة زوج مفتاح-قيمة جديد
player.gold = 100
-- تعديل قيمة موجودة
player.level = 6جمال هذا النهج هو أن Lua لا تفرق بين الإضافة والتعديل. إذا كان المفتاح "gold" غير موجود في الجدول، فسيتم إنشاؤه بالقيمة 100. إذا كان المفتاح "level" موجوداً بالفعل، فسيتم تحديث قيمته إلى 6.
يمكنك استخدام إما تدوين النقطة (dot notation) أو تدوين الأقواس (bracket notation) لهذه العمليات:
-- كلاهما يعمل بنفس الطريقة
player.class = "Warrior"
player["weapon"] = "Sword"التحدي
سهلقم بإنشاء نظام لتطوير الشخصية يوضح كلاً من إضافة سمات جديدة وتعديل السمات الموجودة. ابدأ بإنشاء جدول يسمى hero مع أزواج المفتاح والقيمة الأولية التالية: يجب تعيين السلسلة "Warrior" للمفتاح ["name"]، والرقم 5 للمفتاح ["level"]، والرقم 120 للمفتاح ["health"].
بعد إنشاء جدول الشخصية الأولي، قم بإجراء التعديلات التالية: أولاً، أضف زوج مفتاح وقيمة جديد ["class"] بالقيمة "Paladin" باستخدام تدوين النقطة (dot notation). بعد ذلك، قم بتعديل قيمة level الحالية إلى 7 باستخدام تدوين الأقواس (bracket notation). وأخيرًا، أضف زوج مفتاح وقيمة جديداً آخر ["mana"] بالقيمة 80 باستخدام تدوين الأقواس.
بعد اكتمال جميع التعديلات، قم بطباعة فئة البطل (class) والمستوى المحدث للتحقق من التغييرات.
ورقة مرجعية
لإضافة زوج مفتاح-قيمة جديد أو تعديل زوج موجود في جدول، استخدم عامل التعيين مع تدوين النقطة أو تدوين الأقواس:
local player = {
["name"] = "Alex",
["level"] = 5
}
-- إضافة زوج مفتاح-قيمة جديد
player.gold = 100
-- تعديل قيمة موجودة
player.level = 6لا تفرق لغة Lua بين الإضافة والتعديل - إذا كان المفتاح غير موجود، يتم إنشاؤه؛ وإذا كان موجوداً، يتم تحديث قيمته.
يعمل كل من تدوين النقطة وتدوين الأقواس لهذه العمليات:
-- كلاهما يعمل بنفس الطريقة
player.class = "Warrior"
player["weapon"] = "Sword"جرّب بنفسك
-- إنشاء جدول البطل الأولي
local hero = {
-- TODO: أضف أزواج المفتاح والقيمة الأولية هنا
}
-- TODO: أضف سمات جديدة وقم بتعديل السمات الموجودة باستخدام تدوين النقطة والأقواس
-- طباعة فئة البطل والمستوى المحدث
print(hero.class)
print(hero.level)يتضمن هذا الدرس اختبارًا قصيرًا. ابدأ الدرس للإجابة عليه وتتبّع تقدمك.
جميع دروس 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'مراجعة - العد التنازلي