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

المطابقة باستخدام المتغيرات

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

في درس عبارة المطابقة، كان كل نمط قيمة حرفية، مثل 1: أو "bow":. ويمكن أن يكون النمط أيضًا ثابتًا أو متغيرًا: تقارن match القيمة بما يحمله ذلك الاسم عند تنفيذ السطر:

const SECRET := 42
var guess := 42
match guess:
	SECRET:
		print("You found it!")
	_:
		print("Try again")
You found it!

النمط الجديد الثاني هو نمط الربط: var متبوعًا باسم جديد. مثل _، يطابق أي قيمة، كما يخزّن تلك القيمة في المتغير الجديد، الذي يمكنك استخدامه داخل كتلته:

var level := 5
match level:
	1:
		print("Tutorial")
	var n:
		print("Level %d is locked" % n)
Level 5 is locked

يكون نمط الربط أكثر فائدة عندما تطابق نتيجة تعبير ليس له اسم خاص به:

var roll_a := 4
var roll_b := 6
match roll_a + roll_b:
	12:
		print("Double six!")
	var total:
		print("You rolled ", total)
You rolled 10

يطابق نمط الربط كل شيء، لذا يأتي أخيرًا، مثل _. يجب أن يكون اسمه جديدًا: فكتابة var level: في المثال الثاني ستكون خطأ، لأن level موجود بالفعل. ولا يمكنه أيضًا مشاركة سطر مع أنماط أخرى مفصولة بفواصل.

تقارن match الأنواع بصرامة: السلسلة النصية "5" لا تطابق النمط 5، وكذلك العدد العشري 5.0. حوّل النص المقروء من الإدخال باستخدام int() قبل مطابقته مع الأعداد.

challenge icon

التحدي

سهل

اكتب فحصًا لتخمين رقم. يحتوي الثابت SECRET على الرقم السري، ويقرأ البرنامج تخمين اللاعب كعدد صحيح في guess.

اكتب تعليمة match على guess بثلاثة أنماط:

  • الثابت SECRET: اطبع Correct!
  • 0: اطبع You gave up.
  • نمط إسناد لأي تخمين آخر: اطبع التخمين متبوعًا بـ is not the number.

بالنسبة إلى الإدخال 17، يكون الناتج:

17 is not the number.

جرّب بنفسك

extends Node

func _ready():
	const SECRET := 42
	var guess := int(OS.read_string_from_stdin())
	# اكتب عبارة match أدناه
quiz iconاختبر نفسك

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

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

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