أنماط القواميس
جزء من قسم المنطق وتدفّق التنفيذ في رحلة GDScript على Coddy. الدرس 9 من 78.
يسرد نمط القاموس المفاتيح والأنماط التي يجب أن تطابقها قيمها. وهو يطابق قاموسًا يحتوي على هذه المفاتيح بالضبط، بأي ترتيب:
var event := {"type": "move", "dir": "left"}
match event:
{"type": "jump"}:
print("Jump!")
{"type": "move", "dir": var d}:
print("Moving ", d)Moving leftيجب أن تكون قيمة "type" هي "move"، وتُخزَّن قيمة "dir"، أيًّا كانت، في d. لا تتطابق القواميس التي تحتوي على مفتاح غير مدرج في النمط. أضف .. في النهاية للسماح بمفاتيح إضافية:
var hit := {"type": "attack", "damage": 30, "crit": true}
match hit:
{"type": "attack", "damage": _}:
print("Exactly two keys")
{"type": "attack", "damage": var dmg, ..}:
print("Hit for ", dmg)Hit for 30المفتاح المكتوب دون قيمة يتحقق فقط من وجود المفتاح: {"name", ..}: يطابق أي قاموس يحتوي على مفتاح "name". تعمل الشروط الحارسة هنا أيضًا: {"type": "attack", "damage": var dmg} when dmg > 50:.
التحدي
سهليقرأ البرنامج حدثًا في اللعبة مكتوبًا على شكل أزواج key=value مفصولة بفواصل، مثل type=move,dir=left، ويخزّنه في القاموس event (المكتوب مسبقًا). جميع القيم سلاسل نصية.
استخدم عبارة match مع أنماط القواميس، بهذا الترتيب:
- المفتاحان
type("move") وdirفقط: اطبعMovingوالاتجاه - المفتاحان
type("attack") وdamageفقط: اطبعTaking، والضرر، وdamage - قيمة
typeهي"heal"، مع أي مفاتيح أخرى: اطبعHealing - أي قاموس آخر يحتوي على مفتاح
type: اطبعUnknown event:والنوع - أي شيء آخر: اطبع
Invalid event
للمدخل type=attack,damage=30، يكون الناتج:
Taking 30 damageيحتوي حدث مثل type=move,dir=up,speed=2 على مفتاح إضافي، لذا يطبع Unknown event: move.
جرّب بنفسك
extends Node
func _ready():
var event := {}
for pair in OS.read_string_from_stdin().split(","):
var kv := pair.split("=")
event[kv[0]] = kv[1]
# طابق event مع أنماط القواميس
يتضمن هذا الدرس اختبارًا قصيرًا. ابدأ الدرس للإجابة عليه وتتبّع تقدمك.
جميع دروس المنطق وتدفّق التنفيذ
1السلاسل النصية بالتفصيل
أساليب السلاسل النصيةالبحث داخل السلاسل النصيةالاستبدال وإزالة المسافات الطرفيةالتقسيم والدمجمراجعة - التحقق من اسم المستخدم4القواميس، الجزء الثاني
القواميس المتداخلةمصفوفات من القواميسدمج القواميسنسخ القواميسمراجعة - عدّ التكرارات2اتخاذ القرارات المتقدم
المطابقة باستخدام المتغيراتشروط المطابقةأنماط المصفوفاتأنماط القواميسالتحقق من العضويةمراجعة - محلل الأوامر5تطبيق دفتر جهات الاتصال
عرض القائمةإضافة جهة اتصال8مدير سجلات الطلاب
نظرة عامة على المشروعإضافة طالب3المصفوفات متعددة الأبعاد
أساسيات المصفوفات ثنائية الأبعادالوصول إلى عناصر المصفوفة ثنائية الأبعادالحلقات المتداخلة مع المصفوفات ثنائية الأبعادمراجعة - المصفوفات ثنائية الأبعادالمصفوفات المتعرجةأنماط شائعة للمصفوفات ثنائية الأبعادمراجعة - لوحة اللعبة6المجموعات باستخدام القواميس
ما هي المجموعة؟القاموس كمجموعةالإضافة والإزالةالاتحاد والتقاطعفرق المجموعاتمراجعة - إزالة العناصر المكررة9تجميع البيانات المتقدم
جمع القيمإيجاد الحد الأدنى والحد الأقصىالترتيب المخصصمراجعة - أداة ترتيب القواميستدرّب بنفسك: مترجم GDScript عبر الإنترنت