الفرق بين المراجعتين ل"Kotlin/collections/flatMapTo"

من موسوعة حسوب
اذهب إلى التنقل اذهب إلى البحث
(أنشأ الصفحة ب'<noinclude>{{DISPLAYTITLE: الدالة <code>flatMapTo()‎</code> في لغة Kotlin}}</noinclude> تعيد الدالة<code>flatMapTo()‎</code> Kotlin/collecti...')
 
سطر 1: سطر 1:
 
<noinclude>{{DISPLAYTITLE: الدالة <code>flatMapTo()‎</code> في لغة Kotlin}}</noinclude>
 
<noinclude>{{DISPLAYTITLE: الدالة <code>flatMapTo()‎</code> في لغة Kotlin}}</noinclude>
 
   
 
   
تعيد الدالة<code>flatMapTo()‎</code> [[Kotlin/collections/List|لائحة]] تضم ناتج تطبيق الدالة <code>transform()‎</code> المُمرّرة إليها على عناصر  [[Kotlin/Array|المصفوفة]] أو [[Kotlin/collections|المجموعة]]  التي استُدعيت عبرها، وفي حال استدعاء الدالة <code>flatMapTo()‎</code>  على [[Kotlin/collections/Map|قاموس]] فستعيد [[Kotlin/collections/List|لائحة]] تضم ناتج تطبيق الدالة <code>transform()‎</code> على مداخل (entries)  [[Kotlin/collections/Map|القاموس]].
+
تضيف الدالة<code>flatMapTo()‎</code> إلى [[Kotlin/collections/List|اللائحة]] المُتغيرة‎ (<code>MutableCollection‎</code>) ‎<code>destination</code>المُمرّرة إليها ناتج تطبيق الدالة <code>transform()‎</code> على عناصر  [[Kotlin/Array|المصفوفة]] أو [[Kotlin/collections|المجموعة]]  التي استُدعيت عبرها، وفي حال استدعاء الدالة <code>flatMapTo()‎</code>  على [[Kotlin/collections/Map|قاموس]] فستضيف إلى [[Kotlin/collections/List|اللائحة]] <code>destination</code> ناتج تطبيق الدالة <code>transform()‎</code> على مداخل (entries)  [[Kotlin/collections/Map|القاموس]].
  
 
==البنية العامة==
 
==البنية العامة==
يمكن استدعاء الدالة<code>flatMap()‎</code> على [[Kotlin/Array|المصفوفات]].<syntaxhighlight lang="kotlin">
+
يمكن استدعاء الدالة<code>flatMapTo()‎</code> على [[Kotlin/Array|المصفوفات]].<syntaxhighlight lang="kotlin">
inline fun <T, R> Array<out T>.flatMap(
+
inline fun <T, R, C : MutableCollection<in R>> Array<out T>.flatMapTo(
 +
    destination: C,
 
     transform: (T) -> Iterable<R>
 
     transform: (T) -> Iterable<R>
): List<R>
+
): C
inline fun <R> ByteArray.flatMap(
+
inline fun <R, C : MutableCollection<in R>> ByteArray.flatMapTo(
 +
    destination: C,
 
     transform: (Byte) -> Iterable<R>
 
     transform: (Byte) -> Iterable<R>
): List<R>
+
): C
inline fun <R> ShortArray.flatMap(
+
inline fun <R, C : MutableCollection<in R>> ShortArray.flatMapTo(
 +
    destination: C,
 
     transform: (Short) -> Iterable<R>
 
     transform: (Short) -> Iterable<R>
): List<R>
+
): C
inline fun <R> IntArray.flatMap(
+
inline fun <R, C : MutableCollection<in R>> IntArray.flatMapTo(
 +
    destination: C,
 
     transform: (Int) -> Iterable<R>
 
     transform: (Int) -> Iterable<R>
): List<R>
+
): C
inline fun <R> LongArray.flatMap(
+
inline fun <R, C : MutableCollection<in R>> LongArray.flatMapTo(
 +
    destination: C,
 
     transform: (Long) -> Iterable<R>
 
     transform: (Long) -> Iterable<R>
): List<R>
+
): C
inline fun <R> FloatArray.flatMap(
+
inline fun <R, C : MutableCollection<in R>> FloatArray.flatMapTo(
 +
    destination: C,
 
     transform: (Float) -> Iterable<R>
 
     transform: (Float) -> Iterable<R>
): List<R>
+
): C
inline fun <R> DoubleArray.flatMap(
+
inline fun <R, C : MutableCollection<in R>> DoubleArray.flatMapTo(
 +
    destination: C,
 
     transform: (Double) -> Iterable<R>
 
     transform: (Double) -> Iterable<R>
): List<R>
+
): C
inline fun <R> BooleanArray.flatMap(
+
inline fun <R, C : MutableCollection<in R>> BooleanArray.flatMapTo(
 +
    destination: C,
 
     transform: (Boolean) -> Iterable<R>
 
     transform: (Boolean) -> Iterable<R>
): List<R>
+
): C
inline fun <R> CharArray.flatMap(
+
inline fun <R, C : MutableCollection<in R>> CharArray.flatMapTo(
 +
    destination: C,
 
     transform: (Char) -> Iterable<R>
 
     transform: (Char) -> Iterable<R>
): List<R>
+
): C
  
</syntaxhighlight>يمكن استدعاء الدالة<code>flatMap()‎</code> على [[Kotlin/Array|المجموعات]].<syntaxhighlight lang="kotlin">
+
</syntaxhighlight>يمكن استدعاء الدالة<code>flatMapTo()‎</code> على [[Kotlin/collections|المجموعات]].<syntaxhighlight lang="kotlin">
inline fun <T, R> Iterable<T>.flatMap(
+
inline fun <T, R, C : MutableCollection<in R>> Iterable<T>.flatMapTo(
 +
    destination: C,
 
     transform: (T) -> Iterable<R>
 
     transform: (T) -> Iterable<R>
): List<R>
+
): C
</syntaxhighlight>يمكن استدعاء الدالة<code>flatMap()‎</code> على [[Kotlin/Array|القواميس]].<syntaxhighlight lang="kotlin">
+
</syntaxhighlight>يمكن استدعاء الدالة<code>flatMapTo()‎</code> على [[Kotlin/collections/Map|القواميس]].<syntaxhighlight lang="kotlin">
inline fun <K, V, R> Map<out K, V>.flatMap(
+
inline fun <K, V, R, C : MutableCollection<in R>> Map<out K, V>.flatMapTo(
 +
    destination: C,
 
     transform: (Entry<K, V>) -> Iterable<R>
 
     transform: (Entry<K, V>) -> Iterable<R>
): List<R>
+
): C
 
</syntaxhighlight>يُلاحَظ وجود الكلمة المفتاحية <code>inline</code> للدلالة على أن هذه الدالة مباشرة، وللمزيد من التفاصيل راجع <nowiki/>[[Kotlin/inline functions|توثيق الدوال المباشرة (inline functions)]].
 
</syntaxhighlight>يُلاحَظ وجود الكلمة المفتاحية <code>inline</code> للدلالة على أن هذه الدالة مباشرة، وللمزيد من التفاصيل راجع <nowiki/>[[Kotlin/inline functions|توثيق الدوال المباشرة (inline functions)]].
 
==القيم المٌعادة==
 
==القيم المٌعادة==
 
[[Kotlin/collections/List|لائحة]] تضم ناتج تطبيق الدالة <code>transform()‎</code> المُمرّرة إليها على عناصر  [[Kotlin/Array|المصفوفة]] أو [[Kotlin/collections|المجموعة]] التي استُدعيت عبرها، وفي حال استدعاء الدالة <code>flatMap()‎</code>  على [[Kotlin/collections/Map|قاموس]] فستعيد [[Kotlin/collections/List|لائحة]] تضم ناتج تطبيق الدالة <code>transform()‎</code> على مداخل (entries)  [[Kotlin/collections/Map|القاموس]].
 
[[Kotlin/collections/List|لائحة]] تضم ناتج تطبيق الدالة <code>transform()‎</code> المُمرّرة إليها على عناصر  [[Kotlin/Array|المصفوفة]] أو [[Kotlin/collections|المجموعة]] التي استُدعيت عبرها، وفي حال استدعاء الدالة <code>flatMap()‎</code>  على [[Kotlin/collections/Map|قاموس]] فستعيد [[Kotlin/collections/List|لائحة]] تضم ناتج تطبيق الدالة <code>transform()‎</code> على مداخل (entries)  [[Kotlin/collections/Map|القاموس]].
 
==أمثلة==
 
==أمثلة==
===استخدام الدالة <code>()flatMapTo</code> مع القواميس===
+
===استخدام الدالة <code>()flatMapTo</code> مع اللوائح===
تعرف الشيفرة الآتية <nowiki/>[[Kotlin/Array|قاموسًا]] باسم <code>map</code>مكونة من ثلاثة أزواج باستخدام الدالة <code>()flatMapTo</code>، ثم تُعرّف الدالة <code>()func</code>، ثم تستخدم الدالة <code>()flatMap</code> لإنشاء لائحة تحتوي ناتج تطبيق الدالة <code>()func</code> على مداخل<nowiki/>[[Kotlin/Array|القاموس]] <code>map</code>، ثم تطبع الناتج:<syntaxhighlight lang="kotlin">
+
تعرف الشيفرة الآتية [[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">
 
fun main(args: Array<String>) {
 
fun main(args: Array<String>) {
val map = mapOf("x" to 2, "y" to 6, "z" to 5)
+
val list = arrayListOf<Int>()
val func : (Int) -> Array<Int> = { arrayOf(it)}
+
listOf(1, 2, 3).flatMapTo(list) { listOf(it, it + 1) }
 
+
print(list) // [1, 2, 2, 3, 3, 4]
println(map.flatMap { (a, b) -> listOf(a) }) // [x, y, z]
 
 
}
 
}
 
</syntaxhighlight>
 
</syntaxhighlight>
 
===انظر أيضًا===
 
===انظر أيضًا===
*<code>[[Kotlin/collections/first|flatMapTo()]]</code>‎: تضيف إلى [[Kotlin/collections/List|اللائحة]] المُمرّرة إليها ناتج تطبيق الدالة <code>transform()‎</code> المُمرّرة إليها على عناصر  [[Kotlin/Array|المصفوفة]] أو [[Kotlin/collections|المجموعة]] أو [[Kotlin/collections/Map|القاموس]].
+
*<code>[[Kotlin/collections/flatMap|flatMap()]]</code>‎: تعيد  [[Kotlin/collections/List|لائحة]] تضم ناتج تطبيق الدالة المُمرّرة إليها على عناصر <nowiki/>[[Kotlin/Array|المصفوفة]] أو <nowiki/>[[Kotlin/collections|المجموعة]] التي استُدعيت عبرها، وفي حال استدعاء الدالة <code>flatMap()‎</code> على قاموس فستعيد لائحة تضم ناتج تطبيق الدالة المُمرّرة إليها على مداخل (entries) القاموس.
 
==مصادر==
 
==مصادر==
 
<span> </span>
 
<span> </span>
*[https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.collections/flat-map.html الدالة  flatMapTo()‎ في التوثيق الرسميّ للمكتبة القياسيّة في لغة Kotlin.]
+
*[https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.collections/flat-map-to.html الدالة  flatMapTo()‎ في التوثيق الرسميّ للمكتبة القياسيّة في لغة Kotlin.]
  
 
*
 
*
 
[[تصنيف:Kotlin]]
 
[[تصنيف:Kotlin]]
 
[[تصنيف:Kotlin Functions]]
 
[[تصنيف:Kotlin Functions]]

مراجعة 13:09، 16 مايو 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>‎، ثم تستدعي الدالة()flatMap  على لائحة مكونة من ثلاثة أعداد وتُمرّر لها اللائحة  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) القاموس.

مصادر