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

التحقق من العضوية

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

لقد تحققتَ بالفعل من العضوية باستخدام in وnot in: يتحقق "cat" in pets من وجود عنصر في مصفوفة، بينما يتحقق "ell" in "hello" من وجود نص داخل سلسلة نصية. وهناك ثلاث حالات أخرى تتكرر كثيرًا.

في القاموس، تتحقق in من المفاتيح فقط. للبحث عن قيمة، تحقّق من المصفوفة التي تُعيدها values():

var grades := {"Alice": 85, "Bob": 90}
print("Alice" in grades)
print(90 in grades)
print(90 in grades.values())
true
false
true

تتحقق العضوية أيضًا من الأنواع. النص المقروء باستخدام OS.read_string_from_stdin() هو سلسلة نصية، والسلسلة النصية "90" ليست العدد الصحيح 90:

var scores := [70, 90]
print("90" in scores)
print(int("90") in scores)
false
true

تحلّ مصفوفة ثابتة من القيم المسموح بها باستخدام in محل سلسلة طويلة من or، وتعمل أيضًا في شرط حارس:

const DIRECTIONS = ["north", "south", "east", "west"]
var dir := "west"
match dir:
	var d when d in DIRECTIONS:
		print("Going ", d)
	_:
		print("You cannot go there")
Going west
challenge icon

التحدي

سهل

يحتوي البرنامج على مصفوفة names تضم طلاب صف، وقاموس grades يضم الطلاب الذين لديهم علامة بالفعل. يقرأ اسم طالب في student وعلامة في grade (كنص).

اطبع ثلاثة أسطر:

  1. NAME is in the class. أو NAME is not in the class.، مع التحقق من names
  2. NAME has a grade. أو NAME has no grade.، مع التحقق من مفاتيح grades
  3. Someone scored GRADE. أو Nobody scored GRADE.، مع التحقق من قيم grades

استبدل NAME وGRADE بالمدخلات. بالنسبة إلى المدخلين Dana و85، يكون الناتج:

Dana is in the class.
Dana has no grade.
Someone scored 85.

جرّب بنفسك

extends Node

func _ready():
	var names := ["Alice", "Bob", "Charlie", "Dana"]
	var grades := {"Alice": 85, "Bob": 90, "Charlie": 78}
	var student := OS.read_string_from_stdin()
	var grade := OS.read_string_from_stdin()
	# اطبع الأسطر الثلاثة
quiz iconاختبر نفسك

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

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

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