عند استدعاء دالة في لغة البرمجة سكالا، يجب عليك تمرير القيمة المناسبة لكل من المعلمة الموجودة في تعريف الدالة. في حالة دالتك a()، يجب أن تقوم بتمرير قيمة مناسبة للمعلمة num.
من الصور التي قدمتها، يبدو أنك تقوم بإعطاء القيمة “3” للمعلمة num عند استدعاء الدالة، ولكن الدالة a() لا تتوقع استقبال أي قيمة.
لحل هذه المشكلة، يجب عليك تحديد المعلمات التي تتوقعها الدالة a() وتمرير القيم المناسبة. على سبيل المثال، إذا كانت دالتك a() تتوقع معلمة من نوع Int، يمكنك تعريف الدالة بالشكل التالي:
scaladef a(num: Int): Unit = { // اجسام الدالة هنا }
وبعدها يمكنك استدعاء الدالة بإعطاء قيمة للمعلمة num كما في الصورة:
scalaa(3)
هذا يعني أنك تمرر القيمة 3 كمعلمة للدالة a()، والدالة ستتعامل مع هذه القيمة بالشكل المناسب.
المزيد من المعلومات
بالتأكيد، هنا بعض المعلومات الإضافية حول كيفية تمرير المعلمات في دوال سكالا:
-
تعريف الدالة: عند تعريف دالة في سكالا، يمكنك تحديد المعلمات التي تتوقعها الدالة داخل قوسين وفصلها بفواصل إذا كانت هناك أكثر من معلمة. على سبيل المثال:
scaladef greet(name: String, age: Int): Unit = { println(s"Hello, $name! You are $age years old.") }
-
استدعاء الدالة: عند استدعاء الدالة، يجب عليك تمرير القيم المناسبة لكل من المعلمات الموجودة في تعريف الدالة. على سبيل المثال:
scalagreet("Alice", 30)
في هذا المثال، تمرير “Alice” كمعلمة للمعلمة name وتمرير 30 كمعلمة للمعلمة age.
-
معالجة المعلمات: داخل جسم الدالة، يمكنك استخدام المعلمات التي تم تمريرها بالشكل العادي. على سبيل المثال:
scaladef square(x: Int): Int = { x * x } val result = square(5) // سيكون الناتج 25
في هذا المثال، تمرير القيمة 5 كمعلمة للدالة square() سيؤدي إلى إرجاع قيمة 25.
-
القيم الافتراضية للمعلمات: يمكنك تحديد قيم افتراضية للمعلمات في سكالا، مما يعني أنه يمكن استدعاء الدالة بدون تمرير قيم لبعض المعلمات إذا كانت لها قيم افتراضية. على سبيل المثال:
scaladef greet(name: String, age: Int = 18): Unit = { println(s"Hello, $name! You are $age years old.") } greet("Bob") // سيطبع: Hello, Bob! You are 18 years old.
في هذا المثال، لم يتم تمرير قيمة للمعلمة age، لكن تم تحديد قيمة افتراضية لها تكون 18.