الفرق بين المراجعتين لصفحة: «Kotlin/collections/filterNotTo»

من موسوعة حسوب
لا ملخص تعديل
طلا ملخص تعديل
 
(5 مراجعات متوسطة بواسطة مستخدمين اثنين آخرين غير معروضة)
سطر 1: سطر 1:
<noinclude>{{DISPLAYTITLE: الدالة <code>filterNotTo()‎</code> في لغة Kotlin}}</noinclude>
<noinclude>{{DISPLAYTITLE: الدالة <code>filterNotTo()‎</code> في Kotlin}}</noinclude>
 
تشبه الدالة <code>filterNotTo()‎</code> الدالة <code>[[Kotlin/collections/filterNot|filterNot()‎]]</code> في جميع النواحي باستثناء أنَّها تضيف الناتج المعاد إلى المعامل الممرَّر إليها. الجدير بالذكر أنّه ينبغي أن يكون ذلك المعامل المعطى مجموعةً [[Kotlin/collections/MutableCollection|قابلةً للتغيير]] (MutableCollection) إن استدعيت الدالة مع مصفوفة أو مجموعة، أو خريطةً [[Kotlin/collections/MutableMap|قابلة للتغيير]] (MutableMap) إن استدعيت الدالة مع خريطة.
تضيف الدالة<code>filterNotTo()‎</code> إلى المعامل <code>destination</code> الممرّر إليها عناصرّ  [[Kotlin/Array|المصفوفة]] أو [[Kotlin/collections|المجموعة]] التي استُدعيت عبرها والتي لا تحقق الشرط المنطقي <code>predicate</code> المُمرّر إليها. من الجدير بالذكر أنّ <code>destination</code> ينبغي أن تكون [[Kotlin/collections|مجموعة]] قابلة للتغيير (<code>MutableCollection</code>).
 
في حال استدعائها عبر [[Kotlin/collections/Map|قاموس]] فستضيف كل الأزوج التي لا تحقق الشرط المنطقي <code>predicate()‎</code> إلى [[Kotlin/collections/Map|القاموس]] <code>destination</code> الممرّر إليها. ومن الجدير بالذكر أنّ <code>destination</code> ينبغي أن تكون [[Kotlin/collections/Map|قاموسًا]] قابلا للتغيير (<code>MutableMap</code>).
==البنية العامة==
==البنية العامة==
يمكن استدعاء الدالة<code>filterNotTo()‎</code> على [[Kotlin/Array|المصفوفات]] أو [[Kotlin/collections|المجموعات]].<syntaxhighlight lang="kotlin">
يمكن استدعاء الدالة <code>filterNotTo()‎</code> مع [[Kotlin/Array|المصفوفات]] أو [[Kotlin/collections|المجموعات]]:<syntaxhighlight lang="kotlin">
inline fun <T, C : MutableCollection<in T>> Array<out T>.filterNotTo(
inline fun <T, C : MutableCollection<in T>> Array<out T>.filterNotTo(
     destination: C,  
     destination: C,  
سطر 46: سطر 43:
     predicate: (T) -> Boolean
     predicate: (T) -> Boolean
): C
): C
</syntaxhighlight>يمكن استدعاء الدالة<code>filterNotTo()‎</code> على [[Kotlin/collections/Map|القواميس]].<syntaxhighlight lang="kotlin">
</syntaxhighlight>ويمكن استدعاؤها مع الخرائط (maps) أيضًا:<syntaxhighlight lang="kotlin">
inline fun <K, V, M : MutableMap<in K, in V>> Map<out K, V>.filterNotTo(
inline fun <K, V, M : MutableMap<in K, in V>> Map<out K, V>.filterNotTo(
     destination: M,  
     destination: M,  
     predicate: (Entry<K, V>) -> Boolean
     predicate: (Entry<K, V>) -> Boolean
): M
): M
</syntaxhighlight>
</syntaxhighlight>وجود الكلمة المفتاحية <code>inline</code> يدل على أنَّ هذه الدالة مباشرة (لمزيد من التفاصيل، راجع <nowiki/>[[Kotlin/inline functions|توثيق الدوال المباشرة]]).


يُلاحَظ وجود الكلمة المفتاحية <code>inline</code> للدلالة على أن هذه الدالة مباشرة، وللمزيد من التفاصيل راجع <nowiki/>[[Kotlin/inline functions|توثيق الدوال المباشرة (inline functions)]].
== المعاملات ==


==القيم المٌعادة==
===<code>destination</code>===
انظر أعلاه.
كائن موجود مسبقًا يمثل الوجهة المراد إضافة الناتج فيها.
===<code>predicate</code>===
دالةٌ تمثل الشرط المراد تطبيقه على كل عنصر من عناصر المصفوفة أو المجموعة أو الخريطة المعطاة. يمرر إلى هذه الدالة قيمة العنصر وتعيد قيمة منطقية.
==القيم المعادة==
يُعاد المعامل <code>destination</code> المعطى بعد إضافة عناصر [[Kotlin/Array|المصفوفة]] أو [[Kotlin/collections|المجموعة]] التي لم تحقق الشرط المنطقي <code>predicate()‎</code> المُمرّر إليها، أو أزواج الخريطة -عند استدعائها مع الخرائط- التي لم تحقق ذلك الشرط المنطقي.
==أمثلة==
==أمثلة==
===استخدام الدالة <code>()filterNotTo</code> مع اللوائح المتغيرة===
تعرف الشيفرة الآتية [[Kotlin/collections/List|قائمتين]] متغيرتين (mutableList) باسم <code>list1</code> و <code>list2</code> باستخدام الدالة <code>()mutableListOf</code>، ثمَّ تستخدم الدالة <code>()filterNotTo</code> لاستبعاد عناصر القائمة الأولى الأصغر من القيمة 3 وإضافة العناصر المتبقيَّة إلى القائمة الثانية:<syntaxhighlight lang="kotlin">
تعرف الشيفرة الآتية [[Kotlin/collections/List|لائحتين]] متغيرتين (<code>mutableList</code>) باسم <code>list</code> و <code>list2</code> باستخدام الدالة <code>()mutableListOf</code>، الأولى مكونة من ستة أعداد والثانية تضم عددًا واحدًا (<code>0</code>)، ثم تستخدم الدالة <code>()filterNotTo</code> لتصفية عناصر [[Kotlin/Array|اللائحة]] <code>list</code> التي لا تحقق الشرط المنطقي<code>predicate</code> المعرّف في الشيفرة وتضيف تلك العناصر إلى <code>list2</code>ثم تعرضها:<syntaxhighlight lang="kotlin">
fun main(args: Array<String>) {
fun main(args: Array<String>) {
val list = mutableListOf(1, 2, 3, 2, 5, 1)
    val list = mutableListOf(1, 2, 3, 2, 5, 1)
val list2 = mutableListOf(0)
    val list2 = mutableListOf(0)
val predicate : (Int) -> Boolean = { it < 3 }
    val predicate: (Int) -> Boolean = { it < 3 }


list.filterNotTo(list2, predicate)
    list.filterNotTo(list2, predicate)


println(list2) // [0, 3, 5]
    println(list2) // [0, 3, 5]
}
}
</syntaxhighlight>
</syntaxhighlight>
==انظر أيضًا==
==انظر أيضًا==
*<code>[[Kotlin/collections/filter|filter()]]</code>‎: تعيد  <nowiki/>[[Kotlin/Array|لائحة]] تحتوي عناصر <nowiki/>[[Kotlin/Array|المصفوفة]] أو <nowiki/>[[Kotlin/collections|المجموعة]] التي تحقق الشرط المنطقي <code>predicate()‎</code> المُمرّر إلى الدالة. وفي حال استدعائها عبرقاموس فستعيد قاموسًا جديدًا مكونًا من كل الأزوج التي تحقق الشرط المنطقي <code>predicate()‎</code> الممرر إلى الدالة.
*الدالة <code>[[Kotlin/collections/filterNot|filterNot()]]</code>‎: تعيد قائمةً تحوي عناصر [[Kotlin/Array|المصفوفة]] أو [[Kotlin/collections|المجموعة]] التي لا تحقق شرطًا منطقيًّا محدَّدًا. إن استدعيت مع خريطة (map)، فستعيد خريطة جديدة تحوي الأزواج التي لم تحقق ذلك الشرط المنطقي.
 
*الدالة <code>[[Kotlin/collections/filterNotNull|filterNotNull()]]</code>: تعيد جميع عناصر [[Kotlin/Array|المصفوفة]] أو [[Kotlin/collections|المجموعة]] المعطاة باستثناء تلك ذات القيمة <code>null</code>.
*<code>[[Kotlin/collections/filterIndexed|filterIndexed()]]</code>: تعيد <nowiki/>[[Kotlin/Array|لائحة]] تحتوي عناصر <nowiki/>[[Kotlin/Array|المصفوفة]] أو <nowiki/>[[Kotlin/collections|المجموعة]] التي تحقق الشرط المنطقي <code>predicate()‎</code> المُمرّر إلى الدالة والتي تأخذ قيمة وفهرس عناصر <nowiki/>[[Kotlin/Array|المصفوفة]] أو <nowiki/>[[Kotlin/collections|المجموعة]] كوسيطين.
*الدالة <code>[[Kotlin/collections/filterNotNullTo|filterNotNullTo()‎]]</code>: تشبه الدالة <code>[[Kotlin/collections/filterNotNull|filterNotNull()‎]]</code> في جميع النواحي باستثناء أنَّها تضيف الناتج الذي تعيده إلى المعامل المُمرَّر إليها.
 
* الدالة <code>[[Kotlin/collections/filterTo|filterTo()‎]]</code>: تشبه هذه الدالة في جميع النواحي باستثناء أنها تضيف الناتج إلى المعامل الممرر إليها.
*<code>[[Kotlin/collections/filterNot|filterNot()]]</code>‎: تعيد <nowiki/>[[Kotlin/Array|لائحة]] تحتوي عناصر <nowiki/>[[Kotlin/Array|المصفوفة]] أو <nowiki/>[[Kotlin/collections|المجموعة]] التي لا تحقق الشرط المنطقي <code>predicate()‎</code> المُمرّر إلى الدالة. وفي حال استدعائها عبر قاموس فستعيد قاموسًا جديدًا مكونًا من كل الأزوج التي لا تحقق الشرط المنطقي <code>predicate()‎</code> الممرر إلى الدالة.
*الدالة <code>[[Kotlin/collections/filterIndexedTo|filterIndexedTo()]]</code>‎: تضيف إلى المجموعة المتغيرة <code>destination</code> المُمرَّر إليها عناصر <nowiki/>[[Kotlin/Array|المصفوفة]] أو <nowiki/>[[Kotlin/collections|المجموعة]] المعطاة التي أعيدت القيمة <code>true</code> مع كل عنصر منها عند تطبيق الدالة <code>predicate()‎</code> المُمرّر عليها. يمرَّر فهرس كل عنصر وقيمته إلى الدالة <code>predicate()‎</code> ثم تعيد بدورها قيمة منطقيَّة.
*<code>[[Kotlin/collections/filterIsInstance|filterIsInstance()]]</code>: تعيد لائحة تحتوي عناصر <nowiki/>[[Kotlin/Array|المصفوفة]] أو <nowiki/>[[Kotlin/collections|المجموعة]] التي استُدعيت عبرها والتي هي نسخة (instance) من نوع (type) أو<nowiki/>[[Kotlin/classes|صنفٍ]] معيّن.
*الدالة <code>[[Kotlin/collections/filterIsInstanceTo|filterIsInstanceTo()]]</code>: تضيف عناصر <nowiki/>[[Kotlin/Array|المصفوفة]] أو <nowiki/>[[Kotlin/collections|المجموعة]] المعطاة التي هي نسخةٌ (instance) من نوع أو <nowiki/>[[Kotlin/classes|صنفٍ]] معيّن إلى المجموعة المتغيرة <code>destination</code>المُمرّرة إليها.
*<code>[[Kotlin/collections/filterIndexedTo|filterIndexedTo()]]</code>‎: تضيف  إلى المعامل <code>destination</code> الممرّر إليها عناصرّ <nowiki/>[[Kotlin/collections|المجموعة]] المتغيرة (<code>MutableCollection</code>) التي استُدعيت عبرها والتي تحقق الشرط المنطقي <code>predicate()‎</code> المُمرّر إلى الدالة.
==مصادر==
==مصادر==
*[https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.collections/filter-not-to.html الدالة  filterNotTo()‎ في التوثيق الرسميّ للمكتبة القياسيّة في لغة Kotlin.]
*[https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.collections/filter-not-to.html صفحة الدالة filterNotTo()‎ في التوثيق الرسميّ للمكتبة القياسيّة في لغة Kotlin.]
[[تصنيف:Kotlin]]
[[تصنيف:Kotlin]]
[[تصنيف:Kotlin Functions]]
[[تصنيف:Kotlin Function]]
[[تصنيف:Kotlin Collection]]

المراجعة الحالية بتاريخ 08:04، 8 سبتمبر 2018

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

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

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

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

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

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

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

المعاملات

destination

كائن موجود مسبقًا يمثل الوجهة المراد إضافة الناتج فيها.

predicate

دالةٌ تمثل الشرط المراد تطبيقه على كل عنصر من عناصر المصفوفة أو المجموعة أو الخريطة المعطاة. يمرر إلى هذه الدالة قيمة العنصر وتعيد قيمة منطقية.

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

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

أمثلة

تعرف الشيفرة الآتية قائمتين متغيرتين (mutableList) باسم list1 و list2 باستخدام الدالة ()mutableListOf، ثمَّ تستخدم الدالة ()filterNotTo لاستبعاد عناصر القائمة الأولى الأصغر من القيمة 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.filterNotTo(list2, predicate)

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

انظر أيضًا

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

مصادر