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

من موسوعة حسوب
مراجعة 12:31، 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()‎ المُمرّرة إليها على عناصر المصفوفة، أو المجموعة، أو الخريطة التي استُدعيت معها.

مصادر