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

من موسوعة حسوب
اذهب إلى التنقل اذهب إلى البحث
(أنشأ الصفحة ب'<noinclude>{{DISPLAYTITLE: الدالة <code>filterNot()‎</code> في لغة Kotlin}}</noinclude> تعيد الدالة<code>filterNot()‎</code> Kotlin/Array|لا...')
 
سطر 1: سطر 1:
 
<noinclude>{{DISPLAYTITLE: الدالة <code>filterNot()‎</code> في لغة Kotlin}}</noinclude>
 
<noinclude>{{DISPLAYTITLE: الدالة <code>filterNot()‎</code> في لغة Kotlin}}</noinclude>
تعيد الدالة<code>filterNot()‎</code> [[Kotlin/Array|لائحة]] تحتوي عناصر  [[Kotlin/Array|المصفوفة]] أو [[Kotlin/collections|المجموعة]] التي تحقق الشرط المنطقي <code>predicate()‎</code>  المُمرّر إلى الدالة. وفي حال استدعائها عبر [[Kotlin/collections/Map|قاموس]] فستعيد قاموسًا جديدًا مكونًا من كل الأزوج التي تحقق الشرط المنطقي <code>predicate()‎</code> الممرر  إلى الدالة، هذا [[Kotlin/collections/Map|القاموس]]<nowiki/>الجديد يحافظ على ترتيب تكرار (entry iteration order) [[Kotlin/collections/Map|القاموس]]<nowiki/>الأصلي.
+
تعيد الدالة<code>filterNot()‎</code> [[Kotlin/Array|لائحة]] تحتوي عناصر  [[Kotlin/Array|المصفوفة]] أو [[Kotlin/collections|المجموعة]] التي لا تحقق الشرط المنطقي <code>predicate()‎</code>  المُمرّر إلى الدالة. وفي حال استدعائها عبر [[Kotlin/collections/Map|قاموس]] فستعيد قاموسًا جديدًا مكونًا من كل الأزوج التي لا تحقق الشرط المنطقي <code>predicate()‎</code> الممرر  إلى الدالة، هذا [[Kotlin/collections/Map|القاموس]]<nowiki/>الجديد يحافظ على ترتيب تكرار (entry iteration order) [[Kotlin/collections/Map|القاموس]]<nowiki/>الأصلي.
  
 
==البنية العامة==
 
==البنية العامة==
 
يمكن استدعاء الدالة<code>filterNot()‎</code> على [[Kotlin/Array|المصفوفات]] أو [[Kotlin/collections|المجموعات]].<syntaxhighlight lang="kotlin">
 
يمكن استدعاء الدالة<code>filterNot()‎</code> على [[Kotlin/Array|المصفوفات]] أو [[Kotlin/collections|المجموعات]].<syntaxhighlight lang="kotlin">
inline fun <T> Array<out T>.filter(
+
inline fun <T> Array<out T>.filterNot(
 
     predicate: (T) -> Boolean
 
     predicate: (T) -> Boolean
 
): List<T>  
 
): List<T>  
inline fun ByteArray.filter(
+
inline fun ByteArray.filterNot(
 
     predicate: (Byte) -> Boolean
 
     predicate: (Byte) -> Boolean
 
): List<Byte>  
 
): List<Byte>  
inline fun ShortArray.filter(
+
inline fun ShortArray.filterNot(
 
     predicate: (Short) -> Boolean
 
     predicate: (Short) -> Boolean
 
): List<Short>  
 
): List<Short>  
inline fun IntArray.filter(
+
inline fun IntArray.filterNot(
 
     predicate: (Int) -> Boolean
 
     predicate: (Int) -> Boolean
 
): List<Int>  
 
): List<Int>  
inline fun LongArray.filter(
+
inline fun LongArray.filterNot(
 
     predicate: (Long) -> Boolean
 
     predicate: (Long) -> Boolean
 
): List<Long>  
 
): List<Long>  
inline fun FloatArray.filter(
+
inline fun FloatArray.filterNot(
 
     predicate: (Float) -> Boolean
 
     predicate: (Float) -> Boolean
 
): List<Float>  
 
): List<Float>  
inline fun DoubleArray.filter(
+
inline fun DoubleArray.filterNot(
 
     predicate: (Double) -> Boolean
 
     predicate: (Double) -> Boolean
 
): List<Double>  
 
): List<Double>  
inline fun BooleanArray.filter(
+
inline fun BooleanArray.filterNot(
 
     predicate: (Boolean) -> Boolean
 
     predicate: (Boolean) -> Boolean
 
): List<Boolean>  
 
): List<Boolean>  
inline fun CharArray.filter(
+
inline fun CharArray.filterNot(
 
     predicate: (Char) -> Boolean
 
     predicate: (Char) -> Boolean
 
): List<Char>  
 
): List<Char>  
inline fun <T> Iterable<T>.filter(
+
inline fun <T> Iterable<T>.filterNot(
 
     predicate: (T) -> Boolean
 
     predicate: (T) -> Boolean
 
): List<T>  
 
): List<T>  
  
</syntaxhighlight>يمكن استدعاء الدالة<code>filter()‎</code> على [[Kotlin/collections/Map|القواميس]].<syntaxhighlight lang="kotlin">
+
</syntaxhighlight>يمكن استدعاء الدالة<code>filterNot()‎</code> على [[Kotlin/collections/Map|القواميس]].<syntaxhighlight lang="kotlin">
inline fun <K, V> Map<out K, V>.filter(
+
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>
سطر 42: سطر 42:
  
 
== القيم المٌعادة ==
 
== القيم المٌعادة ==
[[Kotlin/Array|لائحة]] تحتوي عناصر  [[Kotlin/Array|المصفوفة]] أو [[Kotlin/collections|المجموعة]] التي تحقق الشرط المنطقي <code>predicate()‎</code>  المُمرّر إلى الدالة. وفي حال استدعائها عبر [[Kotlin/collections/Map|قاموس]] فستعيد قاموسًا جديدًا مكونًا من كل الأزوج التي تحقق الشرط المنطقي <code>predicate()‎</code> الممرر  إلى الدالة.
+
[[Kotlin/Array|لائحة]] تحتوي عناصر  [[Kotlin/Array|المصفوفة]] أو [[Kotlin/collections|المجموعة]] التي لا تحقق الشرط المنطقي <code>predicate()‎</code>  المُمرّر إلى الدالة. وفي حال استدعائها عبر [[Kotlin/collections/Map|قاموس]] فستعيد قاموسًا جديدًا مكونًا من كل الأزوج التي لا تحقق الشرط المنطقي <code>predicate()‎</code> الممرر  إلى الدالة.
  
 
==أمثلة==
 
==أمثلة==
===استخدام الدالة <code>()filter</code> مع المصفوفات===
+
===استخدام الدالة <code>()filterNot</code> مع المصفوفات===
تعرف الشيفرة الآتية [[Kotlin/Array|مصفوفة]] باسم <code>array</code>مكونة من ستة أعداد باستخدام الدالة <code>()arrayOf</code>، ثم تستخدم الدالة <code>()filter</code> لتصفية عناصر  [[Kotlin/Array|المصفوفة]] <code>array</code> وانشاء [[Kotlin/Array|مصفوفة]] جديدة تضم عناصر [[Kotlin/Array|المصفوفة]] <code>array</code> الأصغر من <code>3</code>، ثم تطبع الناتج:<syntaxhighlight lang="kotlin">
+
تعرف الشيفرة الآتية [[Kotlin/Array|مصفوفة]] باسم <code>array</code>مكونة من ستة أعداد باستخدام الدالة <code>()arrayOf</code>، ثم تستخدم الدالة <code>()filterNot</code> لتصفية عناصر  [[Kotlin/Array|المصفوفة]] <code>array</code> وانشاء [[Kotlin/Array|مصفوفة]] جديدة تضم عناصر [[Kotlin/Array|المصفوفة]] <code>array</code> الأكبر من <code>2</code>، ثم تطبع الناتج:<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.filter {it < 3}) // [1, 2]
+
println(array.filterNot {it < 3}) // [3, 4, 5, 6]
 
}
 
}
 
</syntaxhighlight>
 
</syntaxhighlight>
===استخدام الدالة <code>()filter</code> مع القواميس: الحالة الأولى===
+
===استخدام الدالة <code>()filterNot</code> مع القواميس: الحالة الأولى===
تعرف الشيفرة الآتية [[Kotlin/Array|قاموسًا]] باسم <code>map</code> مكونًا من ثلاثة أزواج باستخدام الدالة <code>()mapOf</code>، ثم تستخدم الدالة <code>()filter</code> لتصفية عناصر  [[Kotlin/collections/Map|القاموس]] <code>map</code> وانشاء [[Kotlin/collections/Map|قاموس]] جديد يضم أزواج [[Kotlin/collections/Map|القاموس]] <code>map</code> التي تكون قيمتها (<code>value</code>) أصغر من <code>2</code>، ثم تطبع الناتج:<syntaxhighlight lang="kotlin">
+
تعرف الشيفرة الآتية [[Kotlin/Array|قاموسًا]] باسم <code>map</code> مكونًا من ثلاثة أزواج باستخدام الدالة <code>()mapOf</code>، ثم تستخدم الدالة <code>()filterNot</code> لتصفية عناصر  [[Kotlin/collections/Map|القاموس]] <code>map</code> وانشاء [[Kotlin/collections/Map|قاموس]] جديد يضم أزواج [[Kotlin/collections/Map|القاموس]] <code>map</code> التي تكون قيمتها (<code>value</code>) أكبر من <code>1</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.filter { it.value < 2 }
+
val filteredMap = map.filterNot { it.value < 2 }
  
println(filteredMap) // {key1=1}
+
println(filteredMap) // {key2=2, key3=3}
 
}
 
}
 
</syntaxhighlight>
 
</syntaxhighlight>
 
===استخدام الدالة <code>()filterNot</code> مع القواميس: الحالة الثانية===
 
===استخدام الدالة <code>()filterNot</code> مع القواميس: الحالة الثانية===
تعرف الشيفرة الآتية [[Kotlin/collections/Map|قاموسًا]] باسم <code>map</code> مكونًا من ثلاثة أزواج باستخدام الدالة <code>()mapOf</code>، ثم تستخدم الدالة <code>()filter</code> لتصفية عناصر  [[Kotlin/Array|القاموس]] <code>map</code> وانشاء [[Kotlin/collections/Map|قاموس]] جديد يضم أزواج [[Kotlin/collections/Map|القاموس]] <code>map</code> التي تكون قيمتها (<code>value</code>) مساوية للقيمة <code>0</code>، ولما كانت كل الأزواج لا تحقق هذا الشرط المنطقي فستعيد الدالة <code>()filter</code> [[Kotlin/collections/Map|قاموسًا]] فارغًا، ثم تطبع الناتج:<syntaxhighlight lang="kotlin">
+
تعرف الشيفرة الآتية [[Kotlin/collections/Map|قاموسًا]] باسم <code>map</code> مكونًا من ثلاثة أزواج باستخدام الدالة <code>()mapOf</code>، ثم تستخدم الدالة <code>()filterNot</code> لتصفية عناصر  [[Kotlin/Array|القاموس]] <code>map</code> وانشاء [[Kotlin/collections/Map|قاموس]] جديد يضم أزواج [[Kotlin/collections/Map|القاموس]] <code>map</code> التي تكون قيمتها (<code>value</code>) مساوية للقيمة <code>0</code>، ولما كانت كل الأزواج لا تحقق هذا الشرط المنطقي فستعيد الدالة <code>()filterNot</code> [[Kotlin/collections/Map|قاموسًا]] يضم كل الأزواج، ثم تطبع الناتج:<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.filter { it.value == 0 }
+
val filteredMap = map.filterNot { it.value == 0 }
  
println(filteredMap) // {}
+
println(filteredMap) // {key1=1, key2=2, key3=3}
 
}
 
}
 
</syntaxhighlight>
 
</syntaxhighlight>
 
===انظر أيضًا===
 
===انظر أيضًا===
 
*<code>[[Kotlin/collections/filterIndexed|filterIndexed()]]</code>‎: تعيد  [[Kotlin/Array|لائحة]] تحتوي عناصر  [[Kotlin/Array|المصفوفة]] أو [[Kotlin/collections|المجموعة]] التي تحقق الشرط المنطقي <code>predicate()‎</code>  المُمرّر إلى الدالة والتي تأخذ قيمة وفهرس عناصر  [[Kotlin/Array|المصفوفة]] أو [[Kotlin/collections|المجموعة]] كوسيطين.
 
*<code>[[Kotlin/collections/filterIndexed|filterIndexed()]]</code>‎: تعيد  [[Kotlin/Array|لائحة]] تحتوي عناصر  [[Kotlin/Array|المصفوفة]] أو [[Kotlin/collections|المجموعة]] التي تحقق الشرط المنطقي <code>predicate()‎</code>  المُمرّر إلى الدالة والتي تأخذ قيمة وفهرس عناصر  [[Kotlin/Array|المصفوفة]] أو [[Kotlin/collections|المجموعة]] كوسيطين.
 +
*<code>[[Kotlin/collections/filter|filter()]]</code>‎: تعيد  <nowiki/>[[Kotlin/Array|لائحة]] تحتوي عناصر <nowiki/>[[Kotlin/Array|المصفوفة]] أو <nowiki/>[[Kotlin/collections|المجموعة]] التي تحقق الشرط المنطقي <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/filterIndexedTo|filterIndexedTo()]]</code>‎: تضيف  إلى المعامل <code>destination</code> الممرّر إليها عناصرّ <nowiki/>[[Kotlin/collections|المجموعة]] المتغيرة (<code>MutableCollection</code>) التي استُدعيت عبرها والتي تحقق الشرط المنطقي <code>predicate()‎</code> المُمرّر إلى الدالة.
 
==مصادر==
 
==مصادر==
 
<span> </span>
 
<span> </span>
*[https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.collections/filter.html الدالة  filterNot()‎ في التوثيق الرسميّ للمكتبة القياسيّة في لغة.
+
*[https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.collections/filter-not.html الدالة  filterNot()‎ في التوثيق الرسميّ للمكتبة القياسيّة في لغة Kotlin.]
  
 
[[تصنيف:Kotlin]]
 
[[تصنيف:Kotlin]]
 
[[تصنيف:Kotlin Functions]]
 
[[تصنيف:Kotlin Functions]]

مراجعة 15:22، 15 مايو 2018

تعيد الدالةfilterNot()‎ لائحة تحتوي عناصر المصفوفة أو المجموعة التي لا تحقق الشرط المنطقي predicate()‎ المُمرّر إلى الدالة. وفي حال استدعائها عبر قاموس فستعيد قاموسًا جديدًا مكونًا من كل الأزوج التي لا تحقق الشرط المنطقي predicate()‎ الممرر إلى الدالة، هذا القاموسالجديد يحافظ على ترتيب تكرار (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>

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

inline fun <K, V> Map<out K, V>.filterNot(
    predicate: (Entry<K, V>) -> Boolean
): Map<K, V>

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

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

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

أمثلة

استخدام الدالة ()filterNot مع المصفوفات

تعرف الشيفرة الآتية مصفوفة باسم arrayمكونة من ستة أعداد باستخدام الدالة ()arrayOf، ثم تستخدم الدالة ()filterNot لتصفية عناصر المصفوفة array وانشاء مصفوفة جديدة تضم عناصر المصفوفة array الأكبر من 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 مع القواميس: الحالة الأولى

تعرف الشيفرة الآتية قاموسًا باسم map مكونًا من ثلاثة أزواج باستخدام الدالة ()mapOf، ثم تستخدم الدالة ()filterNot لتصفية عناصر القاموس map وانشاء قاموس جديد يضم أزواج القاموس map التي تكون قيمتها (value) أكبر من 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 مع القواميس: الحالة الثانية

تعرف الشيفرة الآتية قاموسًا باسم map مكونًا من ثلاثة أزواج باستخدام الدالة ()mapOf، ثم تستخدم الدالة ()filterNot لتصفية عناصر القاموس map وانشاء قاموس جديد يضم أزواج القاموس map التي تكون قيمتها (value) مساوية للقيمة 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}
}

انظر أيضًا

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

مصادر