Menu
Coddy logo textTech
flag Ar iconالعربيةdown icon

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

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

أحيانًا تكون للمعامل قيمة تُستخدم في معظم الأوقات. وبدلًا من مطالبة المستدعي بتوفيرها في كل مرة، يمكنك تعيين قيمة افتراضية لذلك المعامل.

لتعيين قيمة افتراضية، استخدم عامل الإسناد (=) بعد نوع المُعامل:

func greet(name: String, greeting: String = "Hello") {
    print("\(greeting), \(name)!")
}

greet(name: "Alice")                    // المخرجات: Hello, Alice!
greet(name: "Bob", greeting: "Hi")      // المخرجات: Hi, Bob!

عند استدعاء الدالة، يمكنك حذف المعلمات التي لها قيم افتراضية. سيستخدم Swift القيمة الافتراضية تلقائيًا. ولكن إذا كنت بحاجة إلى قيمة مختلفة، فلا يزال بإمكانك توفيرها بشكل صريح.

ينبغي وضع المعلمات ذات القيم الافتراضية في نهاية قائمة المعلمات. فهذا يحافظ على نظافة استدعاءات الدوال وسهولة قراءتها:

func calculatePrice(base: Double, taxRate: Double = 0.1) -> Double {
    return base + (base * taxRate)
}

print(calculatePrice(base: 100))              // المخرجات: 110.0
print(calculatePrice(base: 100, taxRate: 0.2)) // المخرجات: 120.0

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

challenge icon

التحدي

سهل
اكتب دالة formatGreeting تأخذ name وgreeting وrepeatCount وتُرجع رسالة تحية منسّقة.

يجب أن تستخدم الدالة قيمًا افتراضية للمعاملات الاختيارية:

  • يجب أن تكون القيمة الافتراضية لـ greeting هي "Hello"
  • يجب أن تكون القيمة الافتراضية لـ repeatCount هي 1

أنشئ سلسلة نصية تكرّر نمط التحية العدد المحدد من المرات، مع الفصل بينها بمسافات.

المعاملات:

  • name (String): اسم الشخص (مطلوب)
  • greeting (String): كلمة التحية (الافتراضية: "Hello")
  • repeatCount (Int): عدد مرات تكرار التحية (الافتراضي: 1)

القيمة المُرجعة: سلسلة نصية تحتوي على نمط التحية مكررًا. التنسيق: "[greeting], [name]!" مكررًا repeatCount من المرات، مع الفصل بينها بمسافة واحدة (String)

على سبيل المثال، إذا كانت قيمة name هي "Alice"، وقيمة greeting هي "Hi"، وقيمة repeatCount هي 2، فستُرجع الدالة "Hi, Alice! Hi, Alice!".

إذا تم استدعاؤها باستخدام name فقط وكانت قيمته "Bob" (باستخدام القيم الافتراضية)، فستُرجع "Hello, Bob!".

جرّب بنفسك

func formatGreeting(name: String, greeting: String, repeatCount: Int) -> String {
    // اكتب الكود هنا
}
quiz iconاختبر نفسك

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

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

تدرّب بنفسك: Playground لـ Swift