Menu
CoddyTech
flag Ar iconالعربيةdown icon

أنماط المصفوفات

جزء من قسم المنطق وتدفّق التنفيذ في رحلة GDScript على Coddy. الدرس 8 من 78.

يُكتب نمط المصفوفة مثل القيمة الحرفية للمصفوفة. وهو يطابق مصفوفة بالحجم نفسه، بحيث تتطابق عناصرها واحدًا تلو الآخر. يمكن أن يكون كل عنصر من النمط قيمة حرفية، أو _، أو ربطًا:

var point := [0, 7]
match point:
	[0, 0]:
		print("Origin")
	[0, var y]:
		print("On the y-axis at ", y)
	[var x, var y]:
		print("Point ", x, ", ", y)
On the y-axis at 7

يجب أن يكون الحجم متطابقًا: [var x, var y] لا يطابق [1, 2, 3]. ضع .. كعنصر أخير للسماح بأي عدد من العناصر الإضافية (بما في ذلك صفر)، واكتب [] للمصفوفة الفارغة:

var cmd := ["give", "sword", "Ana"]
match cmd:
	[]:
		print("Nothing typed")
	["give", var item, ..]:
		print("Giving ", item)
Giving sword

تعمل الشروط الحارسة مع أنماط المصفوفات أيضًا: يطابق [var a, var b] when a == b: عنصرين متساويين.

تطابق أنماط المصفوفات نوع Array فقط. لا يطابقها أبدًا النوع PackedStringArray الذي تُعيده split(). خزّن النتيجة في متغير مُعرّف على أنه من النوع Array لتحويلها:

var words: Array = "go north".split(" ")
match words:
	["go", var dir]:
		print("Heading ", dir)
Heading north
challenge icon

التحدي

سهل

يقرأ البرنامج نقطة مكتوبة بالشكل x,y ويخزنها في المصفوفة point كعددين صحيحين (وهذا مكتوب مسبقًا). استخدم عبارة match مع أنماط المصفوفات لطباعة موضع النقطة، باستخدام أول قاعدة تنطبق:

  • كلاهما 0: Origin
  • x يساوي 0: On the y-axis at y= متبوعًا بـ y
  • y يساوي 0: On the x-axis at x= متبوعًا بـ x
  • x وy متساويان: On the diagonal at متبوعًا بالقيمة
  • أي حالة أخرى: Point at (x, y) مع القيمتين

للمدخل 0,5، يكون الناتج:

On the y-axis at y=5

للمدخل 2,7، يكون الناتج:

Point at (2, 7)

جرّب بنفسك

extends Node

func _ready():
	var parts := OS.read_string_from_stdin().split(",")
	var point := [int(parts[0]), int(parts[1])]
	# طابق point مع أنماط المصفوفات
quiz iconاختبر نفسك

يتضمن هذا الدرس اختبارًا قصيرًا. ابدأ الدرس للإجابة عليه وتتبّع تقدمك.

جميع دروس المنطق وتدفّق التنفيذ

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