الدالة filterNotNullTo()‎ في Kotlin

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

تشبه الدالة filterNotNullTo()‎ الدالة filterNotNull() في جميع النواحي باستثناء أنَّها تضيف الناتج الذي تعيده إلى المعامل المُمرَّر إليها. الجدير بالذكر أنّه ينبغي أن يكون ذلك المعامل المعطى مجموعةً قابلةً للتغيير (MutableCollection).

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

fun <C : MutableCollection<in T>, T : Any> Array<out T?>.filterNotNullTo(
    destination: C
): C 
fun <C : MutableCollection<in T>, T : Any> Iterable<T?>.filterNotNullTo(
    destination: C
): C

المعاملات

destination

كائن موجود مسبقًا يمثل الوجهة المراد إضافة الناتج فيها.

predicate

دالةٌ تمثل الشرط المراد تطبيقه على كل عنصر من عناصر المصفوفة أو المجموعة أو الخريطة المعطاة. يمرر إلى هذه الدالة قيمة العنصر وتعيد قيمة منطقية.

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

تُعاد المجموعة المتغيرة (MutableCollection) الممرَّرة بعد إضافة جميع عناصر المصفوفة أو المجموعة المعطاة إليها باستثناء تلك ذات القيمة null.

أمثلة

تعرف الشيفرة الآتية قائمتين متغيرتين (mutableList) باسم list1 و list2 باستخدام الدالة ()mutableListOf، ثم تستخدم الدالة ()filterNotNullTo لاستبعاد العناصر ذات القيمة null من المصفوفة الأولى وإضافة الناتج إلى القائمة الثانية:

fun main(args: Array<String>) {
    val list1 = mutableListOf(1, 2, 3, null, 5, 1)
    val list2 = mutableListOf(0)

    list.filterNotNullTo(list2)

    println(list2)// [0, 1, 2, 3, 5, 1]
}

انظر أيضًا

  • الدالة filterNotNull()‎: تعيد جميع عناصر المصفوفة أو المجموعة المعطاة باستثناء تلك ذات القيمة null.
  • الدالة filterNot()‎: تعيد قائمةً تحوي عناصر المصفوفة أو المجموعة التي لا تحقق شرطًا منطقيًّا محدَّدًا. إن استدعيت مع خريطة (map)، فستعيد خريطة جديدة تحوي الأزواج التي لم تحقق ذلك الشرط المنطقي.
  • الدالة filterNotTo()‎: تشبه الدالة filterNot()‎ في جميع النواحي باستثناء أنَّها تضيف الناتج المعاد إلى المعامل الممرَّر إليها.
  • الدالة filterTo()‎: تشبه هذه الدالة في جميع النواحي باستثناء أنها تضيف الناتج إلى المعامل الممرر إليها.
  • الدالة filterIndexedTo()‎: تضيف إلى المجموعة المتغيرة destination المُمرَّر إليها عناصر المصفوفة أو المجموعة المعطاة التي أعيدت القيمة true مع كل عنصر منها عند تطبيق الدالة predicate()‎ المُمرّر عليها. يمرَّر فهرس كل عنصر وقيمته إلى الدالة predicate()‎ ثم تعيد بدورها قيمة منطقيَّة.
  • الدالة filterIsInstanceTo()‎: تضيف عناصر المصفوفة أو المجموعة المعطاة التي هي نسخةٌ (instance) من نوع أو صنفٍ معيّن إلى المجموعة المتغيرة destinationالمُمرّرة إليها.
  • الدالة mapNotNull()‎: تعيد قائمةً تحوي ناتج تطبيق الدالة المُمرّرة إليها على كل عنصر من عناصر المصفوفة أو المجموعة أو الخريطة التي استُدعيت معها باستثناء القيم العدميَّة nullالتي تعيدها تلك الدالة.
  • الدالة mapNotNullTo()‎: تشبه هذه الدالة تمامًا باستثناء أنها تضيف الناتج المعاد إلى المعامل المُمرَّر إليها بدلًا من وضعه في قائمة.

مصادر