الوسائط المُسمّاة
جزء من قسم الأساسيات في رحلة Kotlin على Coddy. الدرس 58 من 93.
عند استدعاء دالة تحتوي على معاملات متعددة، تمرّر عادةً الوسائط بالترتيب المحدد لها تمامًا. لكن Kotlin توفّر بديلًا أكثر وضوحًا: الوسائط المُسمّاة.
باستخدام الوسائط المسماة، تحدد المعلمة التي تنتمي إليها كل قيمة من خلال استخدام اسم المعلمة متبوعًا بـ =:
fun createProfile(name: String, age: Int, city: String) {
println("$name, $age, from $city")
}
fun main() {
createProfile(name = "Alice", age = 25, city = "Paris")
}
// الناتج: Alice, 25, من Parisهذا يجعل شفرتك أكثر قابلية للقراءة، خاصةً عندما تحتوي دالة على عدة معاملات من النوع نفسه. قارن بين استدعاءَي الدالة هذين:
// بدون الوسائط المسماة - ماذا تعني هذه الأرقام؟
calculateArea(10, 5, 3)
// مع الوسائط المسماة - أوضح بكثير!
calculateArea(length = 10, width = 5, height = 3)تتيح لك الوسائط المُسمّاة أيضًا تمرير القيم بأي ترتيب تفضّله:
fun greet(firstName: String, lastName: String) {
println("Hello, $firstName $lastName!")
}
fun main() {
greet(lastName = "Smith", firstName = "John")
}
// المخرجات: Hello, John Smith!يمكنك المزج بين الوسائط الموضعية والمسمّاة، ولكن بمجرد استخدام وسيط مسمّى، ينبغي أيضًا تسمية جميع الوسائط التالية لتجنّب الالتباس.
التحدي
متوسطتُعطى الدالة التالية:
fun formatBook(title: String, author: String, year: Int) {
println("\"$title\" by $author ($year)")
}اقرأ ثلاثة مُدخلات: عنوان كتاب (String)، واسم مؤلف (String)، وسنة نشر (Int).
استدعِ الدالة formatBook باستخدام وسائط مُسمّاة بهذا الترتيب المحدد: year، ثم title، ثم author.
على سبيل المثال، إذا كانت المُدخلات هي:
1984
George Orwell
1949فسيكون الناتج:
"1984" by George Orwell (1949)جرّب بنفسك
fun formatBook(title: String, author: String, year: Int) {
println("\"$title\" by $author ($year)")
}
fun main() {
val title = readLine()!!
val author = readLine()!!
val year = readLine()!!.toInt()
// TODO: استدعِ formatBook باستخدام الوسائط المسماة بهذا الترتيب: year, title, author
}يتضمن هذا الدرس اختبارًا قصيرًا. ابدأ الدرس للإجابة عليه وتتبّع تقدمك.
جميع دروس الأساسيات
4العوامل - الجزء الأول
العوامل الحسابيةعامل باقي القسمةالإسناد المُعزَّزعوامل المقارنةمراجعة - الرياضيات البسيطة7أساسيات الإدخال والإخراج
دالة Printlnقوالب السلاسل النصيةإدخال ReadLineتحويل النوعمراجعة - السنوات حتى التقاعدمراجعة - صواب أم خطأ10الدوال
تعريف دالةالمعاملات والوسائطالقيم المُعادةالوسائط المُسمّاةالقيم الافتراضيةالدوال ذات التعبير الواحدمراجعة - دالة سيغمامراجعة - دالة التحقق2المتغيرات
val مقابل varاستنتاج النوعالأعدادالسلسلة النصيةالقيمة المنطقيةاصطلاحات التسميةمراجعة - تهيئة المتغيرات5المعاملات الجزء 2
المعاملات المنطقية الجزء 1المعاملات المنطقية الجزء 2المعاملات المنطقية الجزء 3المعامل الثلاثي مع تعبير Ifمراجعة - المنطق البسيط8حاسبة تقسيم الفاتورة
رسالة ترحيبيةالحصول على الإدخال3القابلية للقيمة الفارغة
ما هو الأمان من القيم الفارغةالأنواع القابلة للقيمة الفارغةعامل الاستدعاء الآمنعامل Elvisأساسيات تحدي الدوالتأكيد عدم كون القيمة فارغةمراجعة - الوصول الآمن9الحلقات
حلقة Forحلقة Whileحلقة Do-WhileBreakContinueالنطاقات في الحلقاتالحلقة المتداخلةمراجعة - المضروبمراجعة - الإدخال الديناميكيتدرّب بنفسك: Playground لـ Kotlin