الفرق بين المراجعتين لصفحة: «Kotlin/collections/filterNotTo»
لا ملخص تعديل |
جميل-بيلوني (نقاش | مساهمات) ط مراجعة وتدقيق. |
||
سطر 1: | سطر 1: | ||
<noinclude>{{DISPLAYTITLE: الدالة <code>filterNotTo()</code> في | <noinclude>{{DISPLAYTITLE: الدالة <code>filterNotTo()</code> في Kotlin}}</noinclude> | ||
تشبه الدالة <code>filterNotTo()</code> الدالة <code>[[Kotlin/collections/filterNot|filterNot()]]</code> في جميع النواحي باستثناء أنَّها تضيف الناتج المعاد إلى المعامل الممرَّر إليها. الجدير بالذكر أنّه ينبغي أن يكون ذلك المعامل المعطى مجموعةً قابلةً للتغيير (MutableCollection) إن استدعيت الدالة مع مصفوفة أو مجموعة، أو خريطةً قابلة للتغيير (MutableMap) إن استدعيت الدالة مع خريطة. | |||
==البنية العامة== | ==البنية العامة== | ||
يمكن استدعاء الدالة<code>filterNotTo()</code> | يمكن استدعاء الدالة <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: | سطر 44: | ||
predicate: (T) -> Boolean | predicate: (T) -> Boolean | ||
): C | ): C | ||
</syntaxhighlight> | </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>destination</code> المعطى بعد إضافة عناصر [[Kotlin/Array|المصفوفة]] أو [[Kotlin/collections|المجموعة]] التي لم تحقق الشرط المنطقي <code>predicate()</code> المُمرّر إليها، أو أزواج الخريطة -عند استدعائها مع الخرائط- التي لم تحقق ذلك الشرط المنطقي. | |||
==أمثلة== | ==أمثلة== | ||
تعرف الشيفرة الآتية [[Kotlin/collections/List|قائمتين]] متغيرتين (mutableList) باسم <code>list1</code> و <code>list2</code> باستخدام الدالة <code>()mutableListOf</code>، ثمَّ تستخدم الدالة <code>()filterNotTo</code> لاستبعاد عناصر القائمة الأولى الأصغر من القيمة 3 وإضافة العناصر المتبقيَّة إلى القائمة الثانية:<syntaxhighlight lang="kotlin"> | |||
تعرف الشيفرة الآتية [[Kotlin/collections/List| | |||
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 | 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/ | *الدالة <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/ | *الدالة <code>[[Kotlin/collections/filterNotNullTo|filterNotNullTo()]]</code>: تشبه الدالة <code>[[Kotlin/collections/filterNotNull|filterNotNull()]]</code> في جميع النواحي باستثناء أنَّها تضيف الناتج الذي تعيده إلى المعامل المُمرَّر إليها. | ||
* الدالة <code>[[Kotlin/collections/filter|filter()]]</code>: ترشِّح عناصر <nowiki/>[[Kotlin/Array|المصفوفة]] أو <nowiki/>[[Kotlin/collections|المجموعة]] أو أزواج الخرائط المعطاة التي تحقِّق شرطًا معيَّنًا ثمّ تعيدها. | |||
*<code>[[Kotlin/collections/ | *الدالة <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/ | *الدالة <code>[[Kotlin/collections/filterIsInstanceTo|filterIsInstanceTo()]]</code>: تضيف عناصر <nowiki/>[[Kotlin/Array|المصفوفة]] أو <nowiki/>[[Kotlin/collections|المجموعة]] المعطاة التي هي نسخةٌ (instance) من نوع أو <nowiki/>[[Kotlin/classes|صنفٍ]] معيّن إلى المجموعة المتغيرة <code>destination</code>المُمرّرة إليها. | ||
==مصادر== | ==مصادر== | ||
*[https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.collections/filter-not-to.html الدالة | *[https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.collections/filter-not-to.html الدالة filterNotTo() في التوثيق الرسميّ للمكتبة القياسيّة في لغة Kotlin.] | ||
[[تصنيف:Kotlin]] | [[تصنيف:Kotlin]] | ||
[[تصنيف:Kotlin Functions]] | [[تصنيف:Kotlin Functions]] |
مراجعة 17:17، 22 يوليو 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()
المُمرّر إليها، أو أزواج الخريطة -عند استدعائها مع الخرائط- التي لم تحقق ذلك الشرط المنطقي.
أمثلة
تعرف الشيفرة الآتية قائمتين متغيرتين (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()
في جميع النواحي باستثناء أنَّها تضيف الناتج الذي تعيده إلى المعامل المُمرَّر إليها. - الدالة
filter()
: ترشِّح عناصر المصفوفة أو المجموعة أو أزواج الخرائط المعطاة التي تحقِّق شرطًا معيَّنًا ثمّ تعيدها. - الدالة
filterIndexedTo()
: تضيف إلى المجموعة المتغيرةdestination
المُمرَّر إليها عناصر المصفوفة أو المجموعة المعطاة التي أعيدت القيمةtrue
مع كل عنصر منها عند تطبيق الدالةpredicate()
المُمرّر عليها. يمرَّر فهرس كل عنصر وقيمته إلى الدالةpredicate()
ثم تعيد بدورها قيمة منطقيَّة. - الدالة
filterIsInstanceTo()
: تضيف عناصر المصفوفة أو المجموعة المعطاة التي هي نسخةٌ (instance) من نوع أو صنفٍ معيّن إلى المجموعة المتغيرةdestination
المُمرّرة إليها.