الفرق بين المراجعتين لصفحة: «Kotlin/collections/flatMapTo»
جميل-بيلوني (نقاش | مساهمات) ط مراجعة وتدقيق. |
جميل-بيلوني (نقاش | مساهمات) طلا ملخص تعديل |
||
(5 مراجعات متوسطة بواسطة مستخدمين اثنين آخرين غير معروضة) | |||
سطر 1: | سطر 1: | ||
<noinclude>{{DISPLAYTITLE: الدالة <code>flatMapTo()</code> في Kotlin}}</noinclude> | <noinclude>{{DISPLAYTITLE: الدالة <code>flatMapTo()</code> في Kotlin}}</noinclude> | ||
تشبه الدالة <code>flatMapTo()</code> الدالة <code>[[Kotlin/collections/flatMap|flatMap()]]</code> تمامًا باستثناء أنها تضيف الناتج المعاد إلى كائن موجود مسبقًا بدلًا من إعادته فقط. | |||
==البنية العامة== | ==البنية العامة== | ||
يمكن استدعاء الدالة <code> | يمكن استدعاء الدالة <code>flatMapTo()</code> مع [[Kotlin/Array|المصفوفات]]:<syntaxhighlight lang="kotlin"> | ||
fun <T> Array<out | 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 | |||
</syntaxhighlight>ويمكن استدعاؤها مع [[Kotlin/ | </syntaxhighlight>ويمكن استدعاؤها مع [[Kotlin/collections|المجموعات]]:<syntaxhighlight lang="kotlin"> | ||
fun <T> Iterable<Iterable< | inline fun <T, R, C : MutableCollection<in R>> Iterable<T>.flatMapTo( | ||
destination: C, | |||
transform: (T) -> Iterable<R> | |||
): C | |||
</syntaxhighlight>ويمكن استدعاؤها مع [[Kotlin/collections/Map|الخرائط]].<syntaxhighlight lang="kotlin"> | |||
inline fun <K, V, R, C : MutableCollection<in R>> Map<out K, V>.flatMapTo( | |||
destination: C, | |||
transform: (Entry<K, V>) -> Iterable<R> | |||
): C | |||
</syntaxhighlight>وجود الكلمة المفتاحية <code>inline</code> يدل على أنَّ هذه الدالة مباشرة (للمزيد من التفاصيل، راجع صفحة <nowiki/>[[Kotlin/inline functions|الدوال المباشرة (inline functions)]]). | |||
</ | == المعاملات == | ||
== | |||
=== <code>destination</code> === | |||
مجموعة قابلة للتغيير (MutableCollection) تمثل الوجهة التي سيضاف إليها الناتج. | |||
=== <code>transform</code> === | |||
دالةٌ تطبق على كل عنصر من عناصر <nowiki/>[[Kotlin/Array|المصفوفة]]، أو <nowiki/>[[Kotlin/collections|المجموعة]]، أو [[Kotlin/collections/Map|الخريطة]] المعطاة، وتعيد قيمة معينة تحل مكانه. | |||
==القيم المعادة== | |||
يعاد المعامل <code>destination</code> بعد إضافة ناتج تطبيق الدالة <code>transform</code> على كل عنصر من عناصر <nowiki/>[[Kotlin/Array|المصفوفة]]، أو <nowiki/>[[Kotlin/collections|المجموعة]]، أو [[Kotlin/collections/Map|الخريطة]] المعطاة. | |||
==أمثلة== | ==أمثلة== | ||
تعرف الشيفرة الآتية [[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 | val list = arrayListOf<Int>() | ||
listOf(1, 2, 3).flatMapTo(list) { listOf(it, it + 1) } | |||
print(list) // [1, 2, 2, 3, 3, 4] | |||
} | } | ||
</syntaxhighlight> | </syntaxhighlight> | ||
==انظر أيضًا== | ==انظر أيضًا== | ||
* | *الدالة <code>[[Kotlin/collections/flatMap|flatMap()]]</code>: تعيد قائمةً تضم ناتج تطبيق الدالة المُمرّرة إليها على عناصر <nowiki/>[[Kotlin/Array|المصفوفة]]، أو <nowiki/>[[Kotlin/collections|المجموعة]]، أو الخريطة التي استُدعيت معها. | ||
*الدالة <code>[[Kotlin/collections/ | *الدالة <code>[[Kotlin/collections/flatten|flatten()]]</code>: تعيد [[Kotlin/collections/List|قائمةً]] واحدة فقط تحوي جميع عناصر [[Kotlin/Array|المصفوفات]] أو [[Kotlin/collections|المجموعات]] المتشعبة ضمن [[Kotlin/Array|المصفوفة]] أو [[Kotlin/collections|المجموعة]] التي استُدعيت معها. | ||
==مصادر== | ==مصادر== | ||
*[https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.collections/ | *[https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.collections/flat-map-to.html صفحة الدالة flatMapTo() في التوثيق الرسميّ للمكتبة القياسيّة في لغة Kotlin.] | ||
[[تصنيف:Kotlin]] | [[تصنيف:Kotlin]] | ||
[[تصنيف:Kotlin | [[تصنيف:Kotlin Function]] | ||
[[تصنيف:Kotlin Collection]] |
المراجعة الحالية بتاريخ 10:21، 3 سبتمبر 2018
تشبه الدالة flatMapTo()
الدالة flatMap()
تمامًا باستثناء أنها تضيف الناتج المعاد إلى كائن موجود مسبقًا بدلًا من إعادته فقط.
البنية العامة
يمكن استدعاء الدالة 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
ويمكن استدعاؤها مع المجموعات:
inline fun <T, R, C : MutableCollection<in R>> Iterable<T>.flatMapTo(
destination: C,
transform: (T) -> Iterable<R>
): C
ويمكن استدعاؤها مع الخرائط.
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)).
المعاملات
destination
مجموعة قابلة للتغيير (MutableCollection) تمثل الوجهة التي سيضاف إليها الناتج.
transform
دالةٌ تطبق على كل عنصر من عناصر المصفوفة، أو المجموعة، أو الخريطة المعطاة، وتعيد قيمة معينة تحل مكانه.
القيم المعادة
يعاد المعامل destination
بعد إضافة ناتج تطبيق الدالة transform
على كل عنصر من عناصر المصفوفة، أو المجموعة، أو الخريطة المعطاة.
أمثلة
تعرف الشيفرة الآتية قائمة فارغة باسم 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()
: تعيد قائمةً تضم ناتج تطبيق الدالة المُمرّرة إليها على عناصر المصفوفة، أو المجموعة، أو الخريطة التي استُدعيت معها. - الدالة
flatten()
: تعيد قائمةً واحدة فقط تحوي جميع عناصر المصفوفات أو المجموعات المتشعبة ضمن المصفوفة أو المجموعة التي استُدعيت معها.