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

من موسوعة حسوب
مراجعة 18:11، 29 مايو 2018 بواسطة محمد-بغات (نقاش | مساهمات) (أنشأ الصفحة ب'<noinclude>{{DISPLAYTITLE: الدالة <code>mapIndexedNotNullTo()‎</code> في لغة Kotlin}}</noinclude> تعيد الدالة<code>mapIndexedNotNullTo()‎</code>...')
(فرق) → مراجعة أقدم | المراجعة الحالية (فرق) | مراجعة أحدث ← (فرق)

تعيد الدالةmapIndexedNotNullTo()‎ لائحة تضم فقط النتائج غير المعدومة (non-null) لتطبيق الدالة transform()‎ على عناصر المصفوفة أو المجموعة التي استُدعيت عبرها وعلى فهارسها.

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

يمكن استدعاء الدالةmapIndexedNotNullTo()‎ على المصفوفات.

inline fun <T, R : Any> Array<out T>.mapIndexedNotNull(
    transform: (index: Int, T) -> R?
): List<R>

يمكن استدعاء الدالةmapIndexedNotNullTo()‎ على المجموعات.

inline fun <T, R : Any> Iterable<T>.mapIndexedNotNull(
    transform: (index: Int, T) -> R?
): List<R>

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

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

لائحة تضم فقط النتائج غير المعدومة (non-null) لتطبيق الدالة transform()‎ على عناصر المصفوفة أو المجموعة التي استُدعيت عبرها وعلى فهارسها.

أمثلة

استخدام الدالة ()mapIndexedNotNullTo مع المصفوفات

تعرف الشيفرة الآتية مصفوفة باسم arrayمكونًا من ستة أعداد باستخدام الدالة ()arrayOf، ثم تستخدم الدالة  ()mapIndexedNotNullTo على array، مع تمرير دالة تعيد null إن كانت قيمة العنصر تخالف قيمة فهرسه أو تعيد العنصر نفسه، ثم تطبع الناتج:

fun main(args: Array<String>) {
val array = arrayOf(0, 2, 2, 4, 7, 5)

println(array.mapIndexedNotNull { a, b -> if (a==b) a else null })   //  [0, 2, 5]
}

انظر أيضًا

  • mapIndexed()‎: تضيف إلى اللائحة المُمرّرة إليها ناتج تطبيق الدالة transform()‎ المُمرّرة إليها على عناصر المصفوفة أو المجموعة أو القاموس وفهارسها.
  • map()‎: تعيد لائحة تضم ناتج تطبيق الدالة transform()‎ المُمرّرة إليها على عناصر المصفوفة أو المجموعة التي استُدعيت عبرها، وفي حال استدعاء الدالة map()‎ على قاموس فستعيد لائحة تضم ناتج تطبيق الدالة transform()‎ على مداخل (entries) القاموس.

مصادر