الدالة component1()‎ في لغة Kotlin

من موسوعة حسوب

تعيد الدالة component1()‎ العنصر الأول من المصفوفة التي استُدعيت عبرها، وفي حال استُدعيت عبر قاموس فستعيد مركبة المفتاح (key component) الخاصة بمدخل القاموس (map entry)، وتسمح هذه الدالة باستخدام التصريحات التفكيكية (destructuring declarations) عند العمل على القواميس.

البنية العامة

يمكن استدعاء الدالة component1()‎عبر المصفوفات واللوائح (List):

inline operator fun <T> Array<out T>.component1(): T 
inline operator fun ByteArray.component1(): Byte 
inline operator fun ShortArray.component1(): Short
inline operator fun IntArray.component1(): Int 
inline operator fun LongArray.component1(): Long 
inline operator fun FloatArray.component1(): Float 
inline operator fun DoubleArray.component1(): Double 
inline operator fun BooleanArray.component1(): Boolean 
inline operator fun CharArray.component1(): Char 
inline operator fun <T> List<T>.component1(): T

ويمكن استدعاء الدالة component1()‎عبر القواميس (maps):

inline operator fun <K, V> Entry<K, V>.component1(): K

يُلاحَظ وجود الكلمة المفتاحية inline للدلالة على أن هذه الدالة مباشرة، وللمزيد من التفاصيل راجع توثيق الدوال المباشرة (inline functions).

القيم المعادة

العنصر الأول من المصفوفة التي استُدعيت عبرها، وفي حال استُدعيت عبر قاموس فستعيد مركبة المفتاح (key component) الخاصة بمدخل القاموس (map entry).

أمثلة

استخدام الدالة ()component1 مع اللوائح

تعرف الشيفرة الآتية لائحة باسم list مكونة من خمسة حروف باستخدام الدالة ()listOf، ثم تستخدم الدالة ()component1 للحصول على العنصر الأول من اللائحة list ثم تطبع الناتج:

fun main(args: Array<String>) {
val list = listOf('a', 'b', 'c', 'd', 'e')
println(list.component1()) // a
}

استخدام الدالة ()component1 مع القواميس

تعرف الشيفرة الآتية قاموسًا باسم map مكونة من زوجين باستخدام الدالة ()hashMapOf، ثم تستخدم الدالة ()component1 للحصول على المركب الأول من مداخل القاموس (entries) في الحلقة for ثم تطبع الناتج:

fun main(args: Array<String>) {
val map = hashMapOf("foo" to 1, "bar" to 2)
for (x  in map) {
    println(x.component1()) // bar foo
}
}

انظر أيضًا

مصادر