الدوال ذات التعبير الواحد
جزء من قسم الأساسيات في رحلة Kotlin على Coddy. الدرس 60 من 93.
عندما تحتوي دالة على تعبير واحد فقط، توفر Kotlin صياغة أكثر إيجازًا. بدلًا من استخدام الأقواس المعقوفة والكلمة المفتاحية return، يمكنك استخدام علامة يساوي متبوعة بالتعبير مباشرةً.
إليك دالة عادية مقارنةً بنظيرتها ذات التعبير الواحد:
// دالة عادية
fun double(n: Int): Int {
return n * 2
}
// دالة التعبير الواحد
fun double(n: Int): Int = n * 2يعمل الإصداران بالطريقة نفسها، لكن الإصدار الثاني أقصر وأسهل قراءةً للعمليات البسيطة.
يمكن لـ Kotlin حتى استنتاج نوع الإرجاع للدوال ذات التعبير الواحد، مما يتيح لك حذفه بالكامل:
fun double(n: Int) = n * 2
fun greet(name: String) = "Hello, $name!"يعمل هذا التركيب بشكل رائع مع التعبيرات الشرطية أيضًا:
fun max(a: Int, b: Int) = if (a > b) a else b
fun isEven(n: Int) = n % 2 == 0الدوال ذات التعبير الواحد مثالية للحسابات وعمليات التحقق والتحويلات البسيطة. فهي تحافظ على نظافة شفرتك وتركيزها على ما تفعله الدالة، بدلًا من آليات إرجاع قيمة.
التحدي
متوسطاكتب دالة calculateDiscount تأخذ price وpercentage وتُرجع السعر بعد الخصم.
استخدم صيغة الدالة ذات التعبير الواحد (مع = بدلًا من الأقواس المعقوفة وreturn) لحساب السعر النهائي بعد تطبيق الخصم.
يُحسب السعر بعد الخصم كما يلي: price - (price * percentage / 100)
المعلمات:
price(Double): السعر الأصليpercentage(Int): نسبة الخصم (0-100)
القيمة المُعادة: السعر بعد تطبيق الخصم (Double)
جرّب بنفسك
fun calculateDiscount(price: Double, percentage: Int): Double {
// اكتب الكود هنا
}
يتضمن هذا الدرس اختبارًا قصيرًا. ابدأ الدرس للإجابة عليه وتتبّع تقدمك.
جميع دروس الأساسيات
4العوامل - الجزء الأول
العوامل الحسابيةعامل باقي القسمةالإسناد المُعزَّزعوامل المقارنةمراجعة - الرياضيات البسيطة7أساسيات الإدخال والإخراج
دالة Printlnقوالب السلاسل النصيةإدخال ReadLineتحويل النوعمراجعة - السنوات حتى التقاعدمراجعة - صواب أم خطأ10الدوال
تعريف دالةالمعاملات والوسائطالقيم المُعادةالوسائط المُسمّاةالقيم الافتراضيةالدوال ذات التعبير الواحدمراجعة - دالة سيغمامراجعة - دالة التحقق2المتغيرات
val مقابل varاستنتاج النوعالأعدادالسلسلة النصيةالقيمة المنطقيةاصطلاحات التسميةمراجعة - تهيئة المتغيرات5المعاملات الجزء 2
المعاملات المنطقية الجزء 1المعاملات المنطقية الجزء 2المعاملات المنطقية الجزء 3المعامل الثلاثي مع تعبير Ifمراجعة - المنطق البسيط8حاسبة تقسيم الفاتورة
رسالة ترحيبيةالحصول على الإدخال3القابلية للقيمة الفارغة
ما هو الأمان من القيم الفارغةالأنواع القابلة للقيمة الفارغةعامل الاستدعاء الآمنعامل Elvisأساسيات تحدي الدوالتأكيد عدم كون القيمة فارغةمراجعة - الوصول الآمن9الحلقات
حلقة Forحلقة Whileحلقة Do-WhileBreakContinueالنطاقات في الحلقاتالحلقة المتداخلةمراجعة - المضروبمراجعة - الإدخال الديناميكيتدرّب بنفسك: Playground لـ Kotlin