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

من موسوعة حسوب
< Kotlin‏ | collections
مراجعة 12:20، 23 يوليو 2018 بواسطة جميل-بيلوني (نقاش | مساهمات) (مراجعة وتدقيق.)
اذهب إلى التنقل اذهب إلى البحث


تعيد الدالة flatten()‎ قائمةً واحدة فقط تحوي جميع عناصر المصفوفات أو المجموعات المتشعبة ضمن المصفوفة أو المجموعة التي استُدعيت معها.

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

يمكن استدعاء الدالة flatten()‎ مع المصفوفات:

fun <T> Array<out Array<out T>>.flatten(): List<T>

ويمكن استدعاؤها مع المجموعات:

fun <T> Iterable<Iterable<T>>.flatten(): List<T>

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

تُعاد قائمة واحدة تحوي جميع عناصر المصفوفات أو المجموعات المتشعبة ضمن المصفوفة أو المجموعة المعطاة.

أمثلة

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

تعرِّف الشيفرة الآتية مصفوفة باسم deepArray باستخدام الدالة ()arrayOf، ثمَّ تستخدم الدالة ()flatten لإنشاء قائمة تضم جميع عناصر المصفوفات المتشعبة ضمن تلك المصفوفة:

fun main(args: Array<String>) {
    val deepArray = arrayOf(
        arrayOf(1),
        arrayOf(2, 3),
        arrayOf(4, 5, 6)
    )

    println(deepArray.flatten()) // [1, 2, 3, 4, 5, 6]
}

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

تعرِّف الشيفرة الآتية قائمة باسم deepList باستخدام الدالة ()listOf، ثمَّ تستخدم الدالة ()flatten لإنشاء قائمة تضم جميع عناصر القوائم المتشعبة ضمن تلك القائمة:

fun main(args: Array<String>) {
    val deepList = listOf(listOf(1), listOf(2, 3), listOf(4, 5, 6))
    println(deepList.flatten()) // [1, 2, 3, 4, 5, 6]
}

انظر أيضًا

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

مصادر