الفرق بين المراجعتين لصفحة: «Kotlin/collections/flatMapTo»

من موسوعة حسوب
لا ملخص تعديل
لا ملخص تعديل
سطر 57: سطر 57:
==أمثلة==
==أمثلة==
===استخدام الدالة <code>()flatMapTo</code> مع اللوائح===
===استخدام الدالة <code>()flatMapTo</code> مع اللوائح===
تعرف الشيفرة الآتية [[Kotlin/collections/List|لائحة]] فارغة <nowiki/>باسم <code>list</code> باستخدام الدالة <code>()arrayListOf<Int>‎</code>، ثم تستدعي الدالة<code>()flatMap</code>  على [[Kotlin/collections/List|لائحة]] مكونة من ثلاثة أعداد وتُمرّر لها [[Kotlin/collections/List|اللائحة]]  <code>list</code> ودالة<nowiki/>، ثم تطبع الناتج:<syntaxhighlight lang="kotlin">
تعرف الشيفرة الآتية [[Kotlin/collections/List|لائحة]] فارغة <nowiki/>باسم <code>list</code> باستخدام الدالة <code>()arrayListOf<Int>‎</code>، ثم تستدعي الدالة<code>()flatMapTo</code>  على [[Kotlin/collections/List|لائحة]] مكونة من ثلاثة أعداد وتُمرّر لها [[Kotlin/collections/List|اللائحة]]  <code>list</code> ودالة<nowiki/>، ثم تطبع الناتج:<syntaxhighlight lang="kotlin">
fun main(args: Array<String>) {
fun main(args: Array<String>) {
val list = arrayListOf<Int>()
val list = arrayListOf<Int>()

مراجعة 23:12، 8 يوليو 2018


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

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

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

inline fun <T, R, C : MutableCollection<in R>> Array<out T>.flatMapTo(
    destination: C, 
    transform: (T) -> Iterable<R>
): C 
inline fun <R, C : MutableCollection<in R>> ByteArray.flatMapTo(
    destination: C, 
    transform: (Byte) -> Iterable<R>
): C 
inline fun <R, C : MutableCollection<in R>> ShortArray.flatMapTo(
    destination: C, 
    transform: (Short) -> Iterable<R>
): C 
inline fun <R, C : MutableCollection<in R>> IntArray.flatMapTo(
    destination: C, 
    transform: (Int) -> Iterable<R>
): C 
inline fun <R, C : MutableCollection<in R>> LongArray.flatMapTo(
    destination: C, 
    transform: (Long) -> Iterable<R>
): C 
inline fun <R, C : MutableCollection<in R>> FloatArray.flatMapTo(
    destination: C, 
    transform: (Float) -> Iterable<R>
): C 
inline fun <R, C : MutableCollection<in R>> DoubleArray.flatMapTo(
    destination: C, 
    transform: (Double) -> Iterable<R>
): C 
inline fun <R, C : MutableCollection<in R>> BooleanArray.flatMapTo(
    destination: C, 
    transform: (Boolean) -> Iterable<R>
): C 
inline fun <R, C : MutableCollection<in R>> CharArray.flatMapTo(
    destination: C, 
    transform: (Char) -> Iterable<R>
): C

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

inline fun <T, R, C : MutableCollection<in R>> Iterable<T>.flatMapTo(
    destination: C, 
    transform: (T) -> Iterable<R>
): C

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

inline fun <K, V, R, C : MutableCollection<in R>> Map<out K, V>.flatMapTo(
    destination: C, 
    transform: (Entry<K, V>) -> Iterable<R>
): C

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

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

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

أمثلة

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

تعرف الشيفرة الآتية لائحة فارغة باسم list باستخدام الدالة ()arrayListOf<Int>‎، ثم تستدعي الدالة()flatMapTo  على لائحة مكونة من ثلاثة أعداد وتُمرّر لها اللائحة  list ودالة، ثم تطبع الناتج:

fun main(args: Array<String>) {
val list = arrayListOf<Int>()
listOf(1, 2, 3).flatMapTo(list) { listOf(it, it + 1) }
print(list) // [1, 2, 2, 3, 3, 4]
}

انظر أيضًا

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

مصادر