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

من موسوعة حسوب
أنشأ الصفحة ب'<noinclude>{{DISPLAYTITLE: الدالة <code>filterNotNull()‎</code> في لغة Kotlin}}</noinclude> تعيد الدالة<code>filterNotNull()‎</code> Kotlin/Ar...'
 
طلا ملخص تعديل
 
(5 مراجعات متوسطة بواسطة 3 مستخدمين غير معروضة)
سطر 1: سطر 1:
<noinclude>{{DISPLAYTITLE: الدالة <code>filterNotNull()‎</code> في لغة Kotlin}}</noinclude>
<noinclude>{{DISPLAYTITLE: الدالة <code>filterNotNull()‎</code> في Kotlin}}</noinclude>
تعيد الدالة<code>filterNotNull()‎</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/>الأصلي.
<nowiki/><nowiki/>تعيد الدالة <code>filterNotNull()‎</code> جميع عناصر [[Kotlin/Array|المصفوفة]] أو [[Kotlin/collections|المجموعة]] المعطاة باستثناء تلك ذات القيمة <code>null</code>.
 
==البنية العامة==
==البنية العامة==
يمكن استدعاء الدالة<code>filterNot()‎</code> على [[Kotlin/Array|المصفوفات]] أو [[Kotlin/collections|المجموعات]].<syntaxhighlight lang="kotlin">
<syntaxhighlight lang="kotlin">
inline fun <T> Array<out T>.filterNot(
fun <T : Any> Array<out T?>.filterNotNull(): List<T>  
    predicate: (T) -> Boolean
fun <T : Any> Iterable<T?>.filterNotNull(): List<T>
): List<T>  
</syntaxhighlight>
inline fun ByteArray.filterNot(
==القيم المعادة==
    predicate: (Byte) -> Boolean
تُعاد قائمة تحوي جميع عناصر [[Kotlin/Array|المصفوفة]] أو [[Kotlin/collections|المجموعة]] المعطاة باستثناء تلك ذات القيمة <code>null</code>.
): 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>
 
</syntaxhighlight>يمكن استدعاء الدالة<code>filterNot()‎</code> على [[Kotlin/collections/Map|القواميس]].<syntaxhighlight lang="kotlin">
inline fun <K, V> Map<out K, V>.filterNot(
    predicate: (Entry<K, V>) -> Boolean
): Map<K, V>
</syntaxhighlight>يُلاحَظ وجود الكلمة المفتاحية <code>inline</code> للدلالة على أن هذه الدالة مباشرة، وللمزيد من التفاصيل راجع <nowiki/>[[Kotlin/inline functions|توثيق الدوال المباشرة (inline functions)]].
 
== القيم المٌعادة ==
[[Kotlin/Array|لائحة]] تحتوي عناصر [[Kotlin/Array|المصفوفة]] أو [[Kotlin/collections|المجموعة]] التي لا تحقق الشرط المنطقي <code>predicate()‎</code> المُمرّر إلى الدالة. وفي حال استدعائها عبر [[Kotlin/collections/Map|قاموس]] فستعيد قاموسًا جديدًا مكونًا من كل الأزوج التي لا تحقق الشرط المنطقي <code>predicate()‎</code> الممرر  إلى الدالة.
 
==أمثلة==
==أمثلة==
===استخدام الدالة <code>()filterNotNull</code> مع المصفوفات===
تعرف الشيفرة الآتية [[Kotlin/Array|مصفوفة]] باسم <code>array</code> باستخدام الدالة <code>()arrayOf</code>، ثم تستخدم الدالة <code>()filterNotNull</code> لاستبعاد العناصر ذات القيمة <code>null</code>:<syntaxhighlight lang="kotlin">
تعرف الشيفرة الآتية [[Kotlin/Array|مصفوفة]] باسم <code>array</code>مكونة من ستة أعداد باستخدام الدالة <code>()arrayOf</code>، ثم تستخدم الدالة <code>()filterNotNull</code> لتصفية عناصر  [[Kotlin/Array|المصفوفة]] <code>array</code> وانشاء [[Kotlin/Array|مصفوفة]] جديدة تضم عناصر [[Kotlin/Array|المصفوفة]] <code>array</code> الأكبر من <code>2</code>، ثم تطبع الناتج:<syntaxhighlight lang="kotlin">
fun main(args: Array<String>) {
val array = arrayOf(1,2,3,4,5,6)
println(array.filterNot {it < 3}) // [3, 4, 5, 6]
}
</syntaxhighlight>
===استخدام الدالة <code>()filterNotNull</code> مع القواميس: الحالة الأولى===
تعرف الشيفرة الآتية [[Kotlin/Array|قاموسًا]] باسم <code>map</code> مكونًا من ثلاثة أزواج باستخدام الدالة <code>()mapOf</code>، ثم تستخدم الدالة <code>()filterNotNull</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>) {
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}
}
</syntaxhighlight>
===استخدام الدالة <code>()filterNot</code> مع القواميس: الحالة الثانية===
تعرف الشيفرة الآتية [[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 array = arrayOf(1, 2, 3, null, 5, 6)
val filteredMap = map.filterNot { it.value == 0 }
    println(array.filterNotNull()) // [1, 2, 3, 5, 6]
 
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/filterNotNullTo|filterNotNullTo()]]</code>: تشبه هذه الدالة في جميع النواحي باستثناء أنَّها تضيف الناتج الذي تعيده إلى المعامل المُمرَّر إليها.
*<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|المجموعة]] التي لا تحقق شرطًا منطقيًّا محدَّدًا. إن استدعيت مع [[Kotlin/collections/Map|خريطة]] (map)، فستعيد خريطة جديدة تحوي الأزواج التي لم تحقق ذلك الشرط المنطقي.
*<code>[[Kotlin/collections/filterIsInstance|filterIsInstance()]]</code>: تعيد لائحة تحتوي عناصر <nowiki/>[[Kotlin/Array|المصفوفة]] أو <nowiki/>[[Kotlin/collections|المجموعة]] التي استُدعيت عبرها والتي هي نسخة (instance) من نوع (type) أو<nowiki/>[[Kotlin/classes|صنفٍ]] معيّن.
*الدالة <code>[[Kotlin/collections/filterIndexed|filterIndexed()]]</code>‎: ترشِّح عناصر <nowiki/>[[Kotlin/Array|المصفوفة]] أو <nowiki/>[[Kotlin/collections|المجموعة]] المعطاة التي أعيدت القيمة <code>true</code> معها عند تطبيق الدالة <code>predicate()‎</code> المُمرّر عليها، إذ يمرَّر فهرس كل عنصر وقيمته إلى الدالة <code>predicate()‎</code> ثم تعيد بدورها قيمة منطقيَّة.
*<code>[[Kotlin/collections/filterIndexedTo|filterIndexedTo()]]</code>: تضيف  إلى المعامل <code>destination</code> الممرّر إليها عناصرّ <nowiki/>[[Kotlin/collections|المجموعة]] المتغيرة (<code>MutableCollection</code>) التي استُدعيت عبرها والتي تحقق الشرط المنطقي <code>predicate()‎</code> المُمرّر إلى الدالة.
*الدالة <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|صنفٍ]] معيّن.
* الدالة <code>[[Kotlin/collections/mapNotNull|mapNotNull()]]</code>: تعيد قائمةً تحوي ناتج تطبيق الدالة المُمرّرة إليها على كل عنصر من عناصر <nowiki/>[[Kotlin/Array|المصفوفة]] أو <nowiki/>[[Kotlin/collections|المجموعة]] أو الخريطة التي استُدعيت معها باستثناء القيم العدميَّة <code>null</code>التي تعيدها تلك الدالة.
==مصادر==
==مصادر==
<span> </span>
*[https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.collections/filter-not-null.html صفحة الدالة filterNotNull()‎ في التوثيق الرسميّ للمكتبة القياسيّة في لغة Kotlin.]
*[https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.collections/filter-not.html الدالة  filterNotNull()‎ في التوثيق الرسميّ للمكتبة القياسيّة في لغة Kotlin.]
 
[[تصنيف:Kotlin]]
[[تصنيف:Kotlin]]
[[تصنيف:Kotlin Functions]]
[[تصنيف:Kotlin Function]]
[[تصنيف:Kotlin Collection]]

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

تعيد الدالة filterNotNull()‎ جميع عناصر المصفوفة أو المجموعة المعطاة باستثناء تلك ذات القيمة null.

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

fun <T : Any> Array<out T?>.filterNotNull(): List<T> 
fun <T : Any> Iterable<T?>.filterNotNull(): List<T>

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

تُعاد قائمة تحوي جميع عناصر المصفوفة أو المجموعة المعطاة باستثناء تلك ذات القيمة null.

أمثلة

تعرف الشيفرة الآتية مصفوفة باسم array باستخدام الدالة ()arrayOf، ثم تستخدم الدالة ()filterNotNull لاستبعاد العناصر ذات القيمة null:

fun main(args: Array<String>) {
    val array = arrayOf(1, 2, 3, null, 5, 6)
    println(array.filterNotNull()) // [1, 2, 3, 5, 6]
}

انظر أيضًا

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

مصادر