الفرق بين المراجعتين لصفحة: «Kotlin/collections/flatMap»
جميل-بيلوني (نقاش | مساهمات) إضافة قسم "المعاملات". |
جميل-بيلوني (نقاش | مساهمات) |
||
سطر 58: | سطر 58: | ||
</syntaxhighlight> | </syntaxhighlight> | ||
==انظر أيضًا== | ==انظر أيضًا== | ||
*الدالة <code>[[Kotlin/collections/ | *الدالة <code>[[Kotlin/collections/flatMapTo|flatMapTo()]]</code>: تشبه هذه الدالة في جميع النواحي باستثناء أنَّها تسند الناتج الذي تعيده إلى المعامل الممرَّر إليها. | ||
*الدالة <code>[[Kotlin/collections/flatten|flatten()]]</code>: تعيد [[Kotlin/collections/List|قائمةً]] واحدة فقط تحوي جميع عناصر [[Kotlin/Array|المصفوفات]] أو [[Kotlin/collections|المجموعات]] المتشعبة ضمن [[Kotlin/Array|المصفوفة]] أو [[Kotlin/collections|المجموعة]] التي استُدعيت معها. | *الدالة <code>[[Kotlin/collections/flatten|flatten()]]</code>: تعيد [[Kotlin/collections/List|قائمةً]] واحدة فقط تحوي جميع عناصر [[Kotlin/Array|المصفوفات]] أو [[Kotlin/collections|المجموعات]] المتشعبة ضمن [[Kotlin/Array|المصفوفة]] أو [[Kotlin/collections|المجموعة]] التي استُدعيت معها. | ||
==مصادر== | ==مصادر== | ||
سطر 64: | سطر 64: | ||
[[تصنيف:Kotlin]] | [[تصنيف:Kotlin]] | ||
[[تصنيف:Kotlin Function]] | [[تصنيف:Kotlin Function]] | ||
[[تصنيف:Collections]] |
مراجعة 10:20، 3 سبتمبر 2018
تعيد الدالة flatMap()
قائمةً تضم ناتج تطبيق الدالة المُمرّرة إليها على عناصر المصفوفة، أو المجموعة، أو الخريطة التي استُدعيت معها.
البنية العامة
يمكن استدعاء الدالة flatMap()
مع المصفوفات:
inline fun <T, R> Array<out T>.flatMap(
transform: (T) -> Iterable<R>
): List<R>
inline fun <R> ByteArray.flatMap(
transform: (Byte) -> Iterable<R>
): List<R>
inline fun <R> ShortArray.flatMap(
transform: (Short) -> Iterable<R>
): List<R>
inline fun <R> IntArray.flatMap(
transform: (Int) -> Iterable<R>
): List<R>
inline fun <R> LongArray.flatMap(
transform: (Long) -> Iterable<R>
): List<R>
inline fun <R> FloatArray.flatMap(
transform: (Float) -> Iterable<R>
): List<R>
inline fun <R> DoubleArray.flatMap(
transform: (Double) -> Iterable<R>
): List<R>
inline fun <R> BooleanArray.flatMap(
transform: (Boolean) -> Iterable<R>
): List<R>
inline fun <R> CharArray.flatMap(
transform: (Char) -> Iterable<R>
): List<R>
ويمكن استدعاؤها مع المجموعات:
inline fun <T, R> Iterable<T>.flatMap(
transform: (T) -> Iterable<R>
): List<R>
ويمكن استدعاؤها أيضًا مع الخرائط:
inline fun <K, V, R> Map<out K, V>.flatMap(
transform: (Entry<K, V>) -> Iterable<R>
): List<R>
وجود الكلمة المفتاحية inline
يدل على أنَّ هذه الدالة مباشرة (للمزيد من التفاصيل، راجع صفحة الدوال المباشرة (inline functions)).
المعاملات
transform
دالةٌ تطبق على كل عنصر من عناصر المصفوفة، أو المجموعة، أو الخريطة المعطاة، وتعيد قيمة معينة تحل مكانه.
القيم المعادة
تُعاد قائمةٌ تضم ناتج تطبيق الدالة transform
المعطاة على كل عنصر من عناصر المصفوفة أو المجموعة أو الخريطة المعطاة أيضًا.
أمثلة
تعرِّف الشيفرة الآتية خريطةً باسم map
باستخدام الدالة ()mapOf
، ثمَّ تستخدم الدالة ()flatMap
لإنشاء قائمة تحوي ناتج تطبيق الدالة ()func
المعرَّفة مسبقًا على أزواج تلك الخريطة:
fun main(args: Array<String>) {
val map = mapOf("x" to 2, "y" to 6, "z" to 5)
val func: (Int) -> Array<Int> = { arrayOf(it)}
println(map.flatMap { (a, b) -> listOf(a) }) // [x, y, z]
}
انظر أيضًا
- الدالة
flatMapTo()
: تشبه هذه الدالة في جميع النواحي باستثناء أنَّها تسند الناتج الذي تعيده إلى المعامل الممرَّر إليها. - الدالة
flatten()
: تعيد قائمةً واحدة فقط تحوي جميع عناصر المصفوفات أو المجموعات المتشعبة ضمن المصفوفة أو المجموعة التي استُدعيت معها.