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

من موسوعة حسوب
اذهب إلى التنقل اذهب إلى البحث
ط (استبدال النص - '==القيم المٌعادة==' ب'==القيم المعادة==')
سطر 50: سطر 50:
 
</syntaxhighlight>وجود الكلمة المفتاحية <code>inline</code> يدل على أن هذه الدالة مباشرة (لمزيد من التفاصيل، راجع <nowiki/>[[Kotlin/inline functions|توثيق الدوال المباشرة]]).
 
</syntaxhighlight>وجود الكلمة المفتاحية <code>inline</code> يدل على أن هذه الدالة مباشرة (لمزيد من التفاصيل، راجع <nowiki/>[[Kotlin/inline functions|توثيق الدوال المباشرة]]).
  
==القيم المٌعادة==
+
==القيم المعادة==
 
يُعاد المعامل <code>destination</code> المعطى بعد إضافة عناصر [[Kotlin/Array|المصفوفة]] أو [[Kotlin/collections|المجموعة]] التي طابقت الشرط المنطقي <code>predicate()‎</code> المُمرّر إليها، أو أزواج الخريطة -عند استدعائها مع الخرائط- التي طابقت ذلك الشرط المنطقي.
 
يُعاد المعامل <code>destination</code> المعطى بعد إضافة عناصر [[Kotlin/Array|المصفوفة]] أو [[Kotlin/collections|المجموعة]] التي طابقت الشرط المنطقي <code>predicate()‎</code> المُمرّر إليها، أو أزواج الخريطة -عند استدعائها مع الخرائط- التي طابقت ذلك الشرط المنطقي.
 
==أمثلة==
 
==أمثلة==

مراجعة 12:48، 19 أغسطس 2018

تشبه هذه الدالة filterTo()‎ الدالة filter()‎ في جميع النواحي باستثناء أنها تضيف الناتج إلى المعامل المُمرَّر إليها. الجدير بالذكر أنّه ينبغي أن يكون ذلك المعامل المعطى مجموعةً قابلةً للتغيير (MutableCollection) إن استدعيت الدالة مع مصفوفة أو مجموعة، أو خريطةً قابلة للتغيير (MutableMap) إن استدعيت الدالة مع خريطة.

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

يمكن استدعاء الدالة filterTo()‎ مع المصفوفات أو المجموعات:

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

ويمكن استدعاؤها مع الخرائط (maps) أيضًا:

inline fun <K, V, M : MutableMap<in K, in V>> Map<out K, V>.filterTo(
    destination: M, 
    predicate: (Entry<K, V>) -> Boolean
): M

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

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

يُعاد المعامل destination المعطى بعد إضافة عناصر المصفوفة أو المجموعة التي طابقت الشرط المنطقي predicate()‎ المُمرّر إليها، أو أزواج الخريطة -عند استدعائها مع الخرائط- التي طابقت ذلك الشرط المنطقي.

أمثلة

تعرف الشيفرة الآتية قائمتين متغيرتين (mutableList) باسم list1 و list2 باستخدام الدالة ()mutableListOf، ثمَّ تستخدم الدالة ()filterTo لإضافة عناصر القائمة الأولى الأصغر من 3 إلى القائمة الثانية:

fun main(args: Array<String>) {
    val list = mutableListOf(1, 2, 3, 2, 5, 1)
    val list2 = mutableListOf(0)
    val predicate  : (Int) -> Boolean = { it < 3 }

    list.filterTo(list2, predicate)

    println(list2) // [0, 1, 2, 2, 1]
}

انظر أيضًا

  • الدالة filter()‎: ترشِّح عناصر المصفوفة أو المجموعة أو أزواج الخرائط المعطاة التي تحقِّق شرطًا معيَّنًا ثمّ تعيدها.
  • الدالة filterNotTo()‎: تشبه الدالة filterNot()‎ في جميع النواحي باستثناء أنَّها تضيف الناتج المعاد إلى المعامل الممرَّر إليها.
  • الدالة filterNotNullTo()‎: تشبه الدالة filterNotNull()‎ في جميع النواحي باستثناء أنَّها تضيف الناتج الذي تعيده إلى المعامل المُمرَّر إليها.
  • الدالة filterIndexedTo()‎: تضيف إلى المجموعة المتغيرة destination المُمرَّر إليها عناصر المصفوفة أو المجموعة المعطاة التي أعيدت القيمة true مع كل عنصر منها عند تطبيق الدالة predicate()‎ المُمرّر عليها. يمرَّر فهرس كل عنصر وقيمته إلى الدالة predicate()‎ ثم تعيد بدورها قيمة منطقيَّة.
  • الدالة filterIsInstanceTo()‎: تضيف عناصر المصفوفة أو المجموعة المعطاة التي هي نسخةٌ (instance) من نوع أو صنفٍ معيّن إلى المجموعة المتغيرة destinationالمُمرّرة إليها.

مصادر