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

القيم الافتراضية

جزء من قسم الأساسيات في رحلة GDScript على Coddy. الدرس 57 من 92.

يمكن أن يكون للمعامل قيمة افتراضية، وتُكتب باستخدام = في التصريح. عندئذٍ يمكن للاستدعاء إغفال هذه الوسيطة، ويحصل المعامل على القيمة الافتراضية:

func greet(player, greeting = "Hello"):
	print(greeting, ", ", player, "!")
greet("Ana")
greet("Ana", "Welcome back")
Hello, Ana!
Welcome back, Ana!

يمرّر الاستدعاء الأول وسيطًا واحدًا، لذا تكون قيمة greeting هي "Hello". ويمرّر الاستدعاء الثاني قيمته الخاصة، التي تحلّ محل القيمة الافتراضية.

يمكن أن يكون للدالة عدة قيم افتراضية، ويمكن أن تكون للمعاملات ذات الأنواع المحددة قيم افتراضية أيضًا:

func spawn(enemy: String, count: int = 1, speed: float = 2.5) -> void:
	print(count, " x ", enemy, " at speed ", speed)

تطبع spawn("bat") العبارة 1 x bat at speed 2.5، وتطبع spawn("bat", 3) العبارة 3 x bat at speed 2.5. تظل الوسائط تملأ المعاملات بالترتيب، لذا لا يمكنك تمرير speed دون تمرير count أيضًا.

يجب أن تأتي المعلمات ذات القيمة الافتراضية بعد المعلمات التي لا تملك قيمة افتراضية. func greet(greeting = "Hello", player): يؤدي إلى خطأ: "لا يمكن أن تأتي المعلمات الإلزامية بعد المعلمات الاختيارية".

challenge icon

التحدي

سهل

يقرأ البرنامج اسم اللاعب في player.

  1. أسفل _ready()، عرّف دالة greet بمعلمتين: player_name، وgreeting بقيمة افتراضية "Hello". تطبع التحية، وفاصلة ومسافة، والاسم، و!.
  2. في _ready()، استدعِ greet(player)، ثم greet(player, "Welcome back").

للإدخال Ana، يكون الناتج:

Hello, Ana!
Welcome back, Ana!

جرّب بنفسك

extends Node

func _ready():
	var player := OS.read_string_from_stdin()
	# استدعِ greet(player)، ثم greet(player, "Welcome back")

# عرّف greet() أدناه، مع استخدام "Hello" كتحية افتراضية
quiz iconاختبر نفسك

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

جميع دروس الأساسيات

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