الدالة filterTo()‎ في لغة Kotlin

من موسوعة حسوب
مراجعة 18:17، 15 مايو 2018 بواسطة محمد-بغات (نقاش | مساهمات) (أنشأ الصفحة ب'<noinclude>{{DISPLAYTITLE: الدالة <code>filterTo()‎</code> في لغة Kotlin}}</noinclude> تضيف الدالة<code>filterTo()‎</code> إلى المعام...')
(فرق) → مراجعة أقدم | المراجعة الحالية (فرق) | مراجعة أحدث ← (فرق)


تضيف الدالةfilterTo()‎ إلى المعامل destination الممرّر إليها عناصرّ المصفوفة أو المجموعة التي استُدعيت عبرها والتي لا تحقق الشرط المنطقي predicate المُمرّر إلى الدالةfilterTo()‎. من الجدير بالذكر أنّ destination ينبغي أن تكون مجموعة قابلة للتغيير (MutableCollection).

في حال استدعائها عبر قاموس فستضيف كل الأزوج التي لا تحقق الشرط المنطقي predicate()‎ إلى القاموس destination الممرّر إلى الدالة filterNotTo()‎ . ومن الجدير بالذكر أنّ destination ينبغي أن تكون قاموسًا قابلا للتغيير (MutableMap).

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

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

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

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

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

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

انظر أعلاه.

أمثلة

استخدام الدالة ()filterTo مع اللوائح المتغيرة

تعرف الشيفرة الآتية لائحتين متغيرتين (mutableList) باسم list و list2 باستخدام الدالة ()mutableListOf، الأولى مكونة من ستة أعداد والثانية تضم عددًا واحدًا (0)، ثم تستخدم الدالة ()filterTo لتصفية عناصر اللائحة list التي لا تحقق الشرط المنطقيpredicate المعرّف في الشيفرة وتضيف تلك العناصر إلى list2ثم تعرضها:

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.filterNotTo(list2, predicate)

println(list2) // [0, 3, 5]
}

انظر أيضًا

  • filter()‎: تعيد  لائحة تحتوي عناصر المصفوفة أو المجموعة التي تحقق الشرط المنطقي predicate()‎ المُمرّر إلى الدالة. وفي حال استدعائها عبرقاموس فستعيد قاموسًا جديدًا مكونًا من كل الأزوج التي تحقق الشرط المنطقي predicate()‎ الممرر إلى الدالة.
  • filterNot()‎: تعيد لائحة تحتوي عناصر المصفوفة أو المجموعة التي لا تحقق الشرط المنطقي predicate()‎ المُمرّر إلى الدالة. وفي حال استدعائها عبر قاموس فستعيد قاموسًا جديدًا مكونًا من كل الأزوج التي لا تحقق الشرط المنطقي predicate()‎ الممرر إلى الدالة.
  • filterIsInstance()‎: تعيد لائحة تحتوي عناصر المصفوفة أو المجموعة التي استُدعيت عبرها والتي هي نسخة (instance) من نوع (type) أوصنفٍ معيّن.
  • filterIndexedTo()‎: تضيف  إلى المعامل destination الممرّر إليها عناصرّ المجموعة المتغيرة (MutableCollection) التي استُدعيت عبرها والتي تحقق الشرط المنطقي predicate()‎ المُمرّر إلى الدالة.

مصادر