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

قيم التعداد

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

كل خيار في التعداد هو int، لذا يمكنك مقارنة الخيارات وإجراء العمليات الحسابية عليها:

enum Day { MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY, SUNDAY }

func _ready():
	print(Day.FRIDAY) # 4
	print(Day.SATURDAY > Day.FRIDAY) # true
	print(Day.FRIDAY + 1) # 5

يعمل التعداد نفسه كقاموس يحوّل الأسماء إلى قيم. تُرجع keys() الأسماء بالترتيب، وتُرجع values() القيم، بينما تُرجع size() عدد الخيارات:

print(Day.keys()) # ["MONDAY", "TUESDAY", ..., "SUNDAY"]
print(Day.size()) # 7

لطباعة اسم قيمة، استخدمها كفهرس في keys(). يعمل هذا عندما تكون للخيارات القيم الافتراضية 0 و1 و2... أما بالنسبة إلى تعداد ذي قيم محددة، فاستخدم find_key()، التي تُرجع اسم القيمة:

var today := Day.SATURDAY
print(Day.keys()[today]) # SATURDAY

مع وجود enum Coin { COPPER = 1, SILVER = 10 } في المستوى الأعلى، تكون Coin.keys()[10] خارج النطاق، بينما تعمل find_key():

print(Coin.find_key(10)) # SILVER

للانتقال في الاتجاه الآخر، من اسم مخزّن كنص إلى قيمته، استخدم الأقواس المربعة. تحقّق من الاسم باستخدام has() أولًا: فالاسم غير الموجود في التعداد يُعدّ خطأً.

var text := "FRIDAY"
if Day.has(text):
	print(Day[text]) # 4

تكرّر for day_name in Day: عبر الأسماء، مثل حلقة تمرّ على قاموس.

challenge icon

التحدي

سهل

يُعرّف البرنامج النصي التعداد Day، من MONDAY إلى SUNDAY. يقرأ البرنامج سطرين: اسم يوم بأحرف كبيرة وعددًا من الأيام (عددًا صحيحًا، 0 أو أكثر).

اطبع سطرين:

  1. الاسم، وhas the value، وقيمة ذلك اليوم في التعداد
  2. In، والعدد، وdays:، واسم اليوم بعد ذلك العدد من الأيام

بعد SUNDAY يبدأ الأسبوع من جديد عند MONDAY. بالنسبة إلى المدخلين FRIDAY و3، يكون الناتج:

FRIDAY has the value 4
In 3 days: MONDAY

جرّب بنفسك

extends Node

enum Day { MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY, SUNDAY }

func _ready():
	var day_name := OS.read_string_from_stdin()
	var days := int(OS.read_string_from_stdin())
	# اطبع قيمة اليوم واليوم الذي يأتي بعد ذلك العدد من الأيام
	pass
quiz iconاختبر نفسك

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

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

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