الفرق بين المراجعتين لصفحة: «Kotlin/collections/filterNot»
لا ملخص تعديل |
جميل-بيلوني (نقاش | مساهمات) طلا ملخص تعديل |
||
(4 مراجعات متوسطة بواسطة مستخدمين اثنين آخرين غير معروضة) | |||
سطر 1: | سطر 1: | ||
<noinclude>{{DISPLAYTITLE: الدالة <code>filterNot()</code> في | <noinclude>{{DISPLAYTITLE: الدالة <code>filterNot()</code> في Kotlin}}</noinclude> | ||
تعيد الدالة<code>filterNot()</code> | <nowiki/><nowiki/>تعيد الدالة <code>filterNot()</code> قائمةً تحوي عناصر [[Kotlin/Array|المصفوفة]] أو [[Kotlin/collections|المجموعة]] التي لم تحقق شرطًا منطقيًّا محدَّدًا. إن استدعيت مع [[Kotlin/collections/Map|خريطة]] (map)، فستعيد خريطة جديدة تحوي الأزواج التي لم تحقق ذلك الشرط المنطقي. تحافظ هذه [[Kotlin/collections/Map|الخريطة]] الجديد على ترتيب تكرار المدخلات (entry iteration order) كما في [[Kotlin/collections/Map|الخريطة]] الأصلية. | ||
==البنية العامة== | ==البنية العامة== | ||
يمكن استدعاء الدالة<code>filterNot()</code> | يمكن استدعاء الدالة <code>filterNot()</code> مع [[Kotlin/Array|المصفوفات]] أو [[Kotlin/collections|المجموعات]]:<syntaxhighlight lang="kotlin"> | ||
inline fun <T> Array<out T>.filterNot( | inline fun <T> Array<out T>.filterNot( | ||
predicate: (T) -> Boolean | predicate: (T) -> Boolean | ||
سطر 35: | سطر 34: | ||
): List<T> | ): List<T> | ||
</syntaxhighlight> | </syntaxhighlight>ويمكن استدعاؤها مع [[Kotlin/collections/Map|الخرائط]] أيضًا:<syntaxhighlight lang="kotlin"> | ||
inline fun <K, V> Map<out K, V>.filterNot( | inline fun <K, V> Map<out K, V>.filterNot( | ||
predicate: (Entry<K, V>) -> Boolean | predicate: (Entry<K, V>) -> Boolean | ||
): Map<K, V> | ): Map<K, V> | ||
</syntaxhighlight> | </syntaxhighlight>وجود الكلمة المفتاحية <code>inline</code> يدل على أنَّ هذه الدالة مباشرة (لمزيد من التفاصيل، راجع <nowiki/>[[Kotlin/inline functions|توثيق الدوال المباشرة]]). | ||
== المعاملات == | |||
== | === <code>predicate</code> === | ||
دالةٌ تمثل الشرط المراد تطبيقه على كل عنصر من عناصر المصفوفة أو المجموعة أو الخريطة المعطاة. يمرر إلى هذه الدالة قيمة العنصر وتعيد قيمة منطقية. | |||
==القيم المعادة== | |||
تُعاد قائمةٌ تحوي عناصر [[Kotlin/Array|المصفوفة]] أو [[Kotlin/collections|المجموعة]] التي لم تحقق الشرط المنطقي <code>predicate</code>، أو خريطة جديدة -عند استدعائها مع الخرائط- تحوي الأزواج التي لم تحقق ذلك الشرط المنطقي. | |||
==أمثلة== | ==أمثلة== | ||
استعمال الدالة <code>()filterNot</code> مع مصفوفة لترشيح عناصر تلك [[Kotlin/Array|المصفوفة]] الأكبر من 2:<syntaxhighlight lang="kotlin"> | |||
fun main(args: Array<String>) { | fun main(args: Array<String>) { | ||
val array = arrayOf(1,2,3,4,5,6) | val array = arrayOf(1, 2, 3, 4, 5, 6) | ||
println(array.filterNot {it < 3}) // [3, 4, 5, 6] | println(array.filterNot { it < 3 }) // [3, 4, 5, 6] | ||
} | } | ||
</syntaxhighlight> | </syntaxhighlight> | ||
استعمال الدالة <code>()filterNot</code> مع خريطة لترشيح أزواج تلك الخريطة التي تزيد قيمتها عن القيمة 1:<syntaxhighlight lang="kotlin"> | |||
fun main(args: Array<String>) { | fun main(args: Array<String>) { | ||
val map = mapOf("key1" to 1, "key2" to 2, "key3" to 3) | val map = mapOf("key1" to 1, "key2" to 2, "key3" to 3) | ||
val filteredMap = map.filterNot { it.value < 2 } | val filteredMap = map.filterNot { it.value < 2 } | ||
println(filteredMap) // {key2=2, key3=3} | println(filteredMap) // {key2=2, key3=3} | ||
} | } | ||
</syntaxhighlight> | </syntaxhighlight>استعمال الدالة <code>()filterNot</code> مع خريطة أيضًا لترشيح أزواج تلك الخريطة التي تساوي قيمتها القيمة 0. ولما كانت كل الأزواج لا تحقق هذا الشرط المنطقي، فستعيد الدالة <code>()filterNot</code> خريطةً تضم كل الأزواج المعطاة:<syntaxhighlight lang="kotlin"> | ||
fun main(args: Array<String>) { | fun main(args: Array<String>) { | ||
val map = mapOf("key1" to 1, "key2" to 2, "key3" to 3) | val map = mapOf("key1" to 1, "key2" to 2, "key3" to 3) | ||
val filteredMap = map.filterNot { it.value == 0 } | val filteredMap = map.filterNot { it.value == 0 } | ||
println(filteredMap) // {key1=1, key2=2, key3=3} | println(filteredMap) // {key1=1, key2=2, key3=3} | ||
} | } | ||
</syntaxhighlight> | </syntaxhighlight> | ||
==انظر أيضًا== | |||
*<code>[[Kotlin/collections/ | *الدالة <code>[[Kotlin/collections/filterNotTo|filterNotTo()]]</code>: تشبه هذه الدالة في جميع النواحي باستثناء أنَّها تضيف الناتج المعاد إلى المعامل الممرَّر إليها. | ||
*<code>[[Kotlin/collections/ | *الدالة <code>[[Kotlin/collections/filterNotNull|filterNotNull()]]</code>: تعيد جميع عناصر [[Kotlin/Array|المصفوفة]] أو [[Kotlin/collections|المجموعة]] المعطاة باستثناء تلك ذات القيمة <code>null</code>. | ||
*<code>[[Kotlin/collections/ | *الدالة <code>[[Kotlin/collections/filterIndexed|filterIndexed()]]</code>: ترشِّح عناصر <nowiki/>[[Kotlin/Array|المصفوفة]] أو <nowiki/>[[Kotlin/collections|المجموعة]] المعطاة التي أعيدت القيمة <code>true</code> معها عند تطبيق الدالة <code>predicate()</code> المُمرّر عليها، إذ يمرَّر فهرس كل عنصر وقيمته إلى الدالة <code>predicate()</code> ثم تعيد بدورها قيمة منطقيَّة. | ||
*<code>[[Kotlin/collections/ | *الدالة <code>[[Kotlin/collections/filter|filter()]]</code>: ترشِّح عناصر <nowiki/>[[Kotlin/Array|المصفوفة]] أو <nowiki/>[[Kotlin/collections|المجموعة]] أو أزواج الخرائط المعطاة التي تحقِّق شرطًا معيَّنًا ثمّ تعيدها. | ||
*الدالة <code>[[Kotlin/collections/filterIsInstance|filterIsInstance()]]</code>: تعيد قائمة تحوي عناصر <nowiki/>[[Kotlin/Array|المصفوفة]] أو <nowiki/>[[Kotlin/collections|المجموعة]] المعطاة التي هي نسخةٌ (instance) من نوع أو <nowiki/>[[Kotlin/classes|صنفٍ]] معيّن. | |||
==مصادر== | ==مصادر== | ||
*[https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.collections/filter-not.html الدالة filterNot() في التوثيق الرسميّ للمكتبة القياسيّة في لغة Kotlin.] | |||
*[https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.collections/filter-not.html الدالة | |||
[[تصنيف:Kotlin]] | [[تصنيف:Kotlin]] | ||
[[تصنيف:Kotlin | [[تصنيف:Kotlin Function]] | ||
[[تصنيف:Kotlin Collection]] |
المراجعة الحالية بتاريخ 07:58، 8 سبتمبر 2018
تعيد الدالة filterNot()
قائمةً تحوي عناصر المصفوفة أو المجموعة التي لم تحقق شرطًا منطقيًّا محدَّدًا. إن استدعيت مع خريطة (map)، فستعيد خريطة جديدة تحوي الأزواج التي لم تحقق ذلك الشرط المنطقي. تحافظ هذه الخريطة الجديد على ترتيب تكرار المدخلات (entry iteration order) كما في الخريطة الأصلية.
البنية العامة
يمكن استدعاء الدالة filterNot()
مع المصفوفات أو المجموعات:
inline fun <T> Array<out T>.filterNot(
predicate: (T) -> Boolean
): List<T>
inline fun ByteArray.filterNot(
predicate: (Byte) -> Boolean
): List<Byte>
inline fun ShortArray.filterNot(
predicate: (Short) -> Boolean
): List<Short>
inline fun IntArray.filterNot(
predicate: (Int) -> Boolean
): List<Int>
inline fun LongArray.filterNot(
predicate: (Long) -> Boolean
): List<Long>
inline fun FloatArray.filterNot(
predicate: (Float) -> Boolean
): List<Float>
inline fun DoubleArray.filterNot(
predicate: (Double) -> Boolean
): List<Double>
inline fun BooleanArray.filterNot(
predicate: (Boolean) -> Boolean
): List<Boolean>
inline fun CharArray.filterNot(
predicate: (Char) -> Boolean
): List<Char>
inline fun <T> Iterable<T>.filterNot(
predicate: (T) -> Boolean
): List<T>
ويمكن استدعاؤها مع الخرائط أيضًا:
inline fun <K, V> Map<out K, V>.filterNot(
predicate: (Entry<K, V>) -> Boolean
): Map<K, V>
وجود الكلمة المفتاحية inline
يدل على أنَّ هذه الدالة مباشرة (لمزيد من التفاصيل، راجع توثيق الدوال المباشرة).
المعاملات
predicate
دالةٌ تمثل الشرط المراد تطبيقه على كل عنصر من عناصر المصفوفة أو المجموعة أو الخريطة المعطاة. يمرر إلى هذه الدالة قيمة العنصر وتعيد قيمة منطقية.
القيم المعادة
تُعاد قائمةٌ تحوي عناصر المصفوفة أو المجموعة التي لم تحقق الشرط المنطقي predicate
، أو خريطة جديدة -عند استدعائها مع الخرائط- تحوي الأزواج التي لم تحقق ذلك الشرط المنطقي.
أمثلة
استعمال الدالة ()filterNot
مع مصفوفة لترشيح عناصر تلك المصفوفة الأكبر من 2:
fun main(args: Array<String>) {
val array = arrayOf(1, 2, 3, 4, 5, 6)
println(array.filterNot { it < 3 }) // [3, 4, 5, 6]
}
استعمال الدالة ()filterNot
مع خريطة لترشيح أزواج تلك الخريطة التي تزيد قيمتها عن القيمة 1:
fun main(args: Array<String>) {
val map = mapOf("key1" to 1, "key2" to 2, "key3" to 3)
val filteredMap = map.filterNot { it.value < 2 }
println(filteredMap) // {key2=2, key3=3}
}
استعمال الدالة ()filterNot
مع خريطة أيضًا لترشيح أزواج تلك الخريطة التي تساوي قيمتها القيمة 0. ولما كانت كل الأزواج لا تحقق هذا الشرط المنطقي، فستعيد الدالة ()filterNot
خريطةً تضم كل الأزواج المعطاة:
fun main(args: Array<String>) {
val map = mapOf("key1" to 1, "key2" to 2, "key3" to 3)
val filteredMap = map.filterNot { it.value == 0 }
println(filteredMap) // {key1=1, key2=2, key3=3}
}
انظر أيضًا
- الدالة
filterNotTo()
: تشبه هذه الدالة في جميع النواحي باستثناء أنَّها تضيف الناتج المعاد إلى المعامل الممرَّر إليها. - الدالة
filterNotNull()
: تعيد جميع عناصر المصفوفة أو المجموعة المعطاة باستثناء تلك ذات القيمةnull
. - الدالة
filterIndexed()
: ترشِّح عناصر المصفوفة أو المجموعة المعطاة التي أعيدت القيمةtrue
معها عند تطبيق الدالةpredicate()
المُمرّر عليها، إذ يمرَّر فهرس كل عنصر وقيمته إلى الدالةpredicate()
ثم تعيد بدورها قيمة منطقيَّة. - الدالة
filter()
: ترشِّح عناصر المصفوفة أو المجموعة أو أزواج الخرائط المعطاة التي تحقِّق شرطًا معيَّنًا ثمّ تعيدها. - الدالة
filterIsInstance()
: تعيد قائمة تحوي عناصر المصفوفة أو المجموعة المعطاة التي هي نسخةٌ (instance) من نوع أو صنفٍ معيّن.