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

من موسوعة حسوب
أنشأ الصفحة ب'<noinclude>{{DISPLAYTITLE: الدالة <code>filterNotNullTo()‎</code> في لغة Kotlin}}</noinclude> تضيف الدالة<code>filterNotNullTo()‎</code> إلى...'
 
لا ملخص تعديل
سطر 1: سطر 1:
<noinclude>{{DISPLAYTITLE: الدالة <code>filterNotNullTo()‎</code> في لغة Kotlin}}</noinclude>
<noinclude>{{DISPLAYTITLE: الدالة <code>filterNotNullTo()‎</code> في لغة Kotlin}}</noinclude>
تضيف الدالة<code>filterNotNullTo()‎</code> إلى المعامل <code>destination</code> الممرّر إليها عناصرّ  [[Kotlin/collections|المجموعة]] المتغيرة (<code>MutableCollection</code>) التي استُدعيت عبرها والتي تحقق الشرط المنطقي <code>predicate()‎</code> المُمرّر إلى الدالة، الدالة المنطقية <code>predicate()‎</code> تأخذ فهرس العنصر وقيمته كمعاملَين وتعيد قيمة منطقية.
تضيف الدالة<code>filterNotNullTo()‎</code> إلى المعامل <code>destination</code> الممرّر إليها عناصرّ  [[Kotlin/Array|المصفوفة]] أو [[Kotlin/collections|المجموعة]] التي استُدعيت عبرها والتي تخالف قيمتها القيمة <code>null</code>. من الجدير بالذكر أنّ <code>destination</code> ينبغي أن تكون مجموعة قابلة للتغيير (<code>MutableCollection</code>).


==البنية العامة==
==البنية العامة==
<syntaxhighlight lang="kotlin">
<syntaxhighlight lang="kotlin">
inline fun <T, C : MutableCollection<in T>> Array<out T>.filterIndexedTo(
fun <C : MutableCollection<in T>, T : Any> Array<out T?>.filterNotNullTo(
     destination: C,
     destination: C
    predicate: (index: Int, T) -> Boolean
): C  
): C  
inline fun <C : MutableCollection<in Byte>> ByteArray.filterIndexedTo(
fun <C : MutableCollection<in T>, T : Any> Iterable<T?>.filterNotNullTo(
     destination: C,
     destination: C
    predicate: (index: Int, Byte) -> Boolean
): C  
): C  
inline fun <C : MutableCollection<in Short>> ShortArray.filterIndexedTo(
</syntaxhighlight>
    destination: C,
    predicate: (index: Int, Short) -> Boolean
): C
inline fun <C : MutableCollection<in Int>> IntArray.filterIndexedTo(
    destination: C,
    predicate: (index: Int, Int) -> Boolean
): C
inline fun <C : MutableCollection<in Long>> LongArray.filterIndexedTo(
    destination: C,
    predicate: (index: Int, Long) -> Boolean
): C
inline fun <C : MutableCollection<in Float>> FloatArray.filterIndexedTo(
    destination: C,
    predicate: (index: Int, Float) -> Boolean
): C
inline fun <C : MutableCollection<in Double>> DoubleArray.filterIndexedTo(
    destination: C,
    predicate: (index: Int, Double) -> Boolean
): C
inline fun <C : MutableCollection<in Boolean>> BooleanArray.filterIndexedTo(
    destination: C,
    predicate: (index: Int, Boolean) -> Boolean
): C
inline fun <C : MutableCollection<in Char>> CharArray.filterIndexedTo(
    destination: C,
    predicate: (index: Int, Char) -> Boolean
): C
inline fun <T, C : MutableCollection<in T>> Iterable<T>.filterIndexedTo(
    destination: C,
    predicate: (index: Int, T) -> Boolean
): C
 
</syntaxhighlight>يُلاحَظ وجود الكلمة المفتاحية <code>inline</code> للدلالة على أن هذه الدالة مباشرة، وللمزيد من التفاصيل راجع <nowiki/>[[Kotlin/inline functions|توثيق الدوال المباشرة (inline functions)]].
== القيم المٌعادة ==
== القيم المٌعادة ==
[[Kotlin/collections|المجموعة]] الممررة إلى الدالة<code>filterNotNullTo()‎</code> بعد إضافةعناصرّ  [[Kotlin/collections|المجموعة]] المتغيرة (<code>MutableCollection</code>) التي استُدعيت عبرها والتي تحقق الشرط المنطقي <code>predicate()‎</code> المُمرّر إلى الدالة.
[[Kotlin/collections|المجموعة]] المتغيرة (<code>MutableCollection</code>) المُمرّرة إلى الدالة <code>filterNotNullTo()‎</code> بعد إضافةعناصرّ  [[Kotlin/collections|المجموعة]] المتغيرة (<code>MutableCollection</code>) التي استُدعيت عبرها والتي تخالف قيمتها القيمة <code>null</code>.


==أمثلة==
==أمثلة==
===استخدام الدالة <code>()filterNotNullTo</code> مع اللوائح المتغيرة===
===استخدام الدالة <code>()filterNotNullTo</code> مع اللوائح المتغيرة===
تعرف الشيفرة الآتية [[Kotlin/collections/List|لائحتين]] متغيرتين (<code>mutableList</code>) باسم <code>list</code> و <code>list2</code> باستخدام الدالة <code>()mutableListOf</code>، الأولى مكونة من ستة أعداد والثانية تضم عددًا واحدًا (<code>0</code>)، ثم تستخدم الدالة <code>()filterIndexedTo</code> لتصفية عناصر  [[Kotlin/Array|اللائحة]] <code>list</code> بواسطة الدالة  <code>()predicate</code> المعرّفة في الشيفرة، وتضيف تلك العناصر إلى <code>list2</code>ثم تعرضها:<syntaxhighlight lang="kotlin">
تعرف الشيفرة الآتية [[Kotlin/collections/List|لائحتين]] متغيرتين (<code>mutableList</code>) باسم <code>list</code> و <code>list2</code> باستخدام الدالة <code>()mutableListOf</code>، الأولى مكونة من ستة عناصر والثانية تضم عددًا واحدًا (<code>0</code>)، ثم تستخدم الدالة <code>()filterNotNullTo</code> لتصفية عناصر  [[Kotlin/Array|اللائحة]] <code>list</code> التي تساوي <code>null</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, null, 5, 1)
val list2 = mutableListOf(0)
val list2 = mutableListOf(0)
val predicate  : (Int,Int) -> Boolean = {x,y ->  x  < y }


list.filterIndexedTo(list2, predicate)
list.filterNotNullTo(list2)


println(list2)// [0, 1, 2, 3, 5]
println(list2)// [0, 1, 2, 3, 5]
سطر 66: سطر 30:


* <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/filterIndexed|filterIndexed()]]</code>‎: تعيد <nowiki/>[[Kotlin/Array|لائحة]] تحتوي عناصر <nowiki/>[[Kotlin/Array|المصفوفة]] أو <nowiki/>[[Kotlin/collections|المجموعة]] التي تحقق الشرط المنطقي <code>predicate()‎</code> المُمرّر إلى الدالة والتي تأخذ قيمة وفهرس عناصر <nowiki/>[[Kotlin/Array|المصفوفة]] أو <nowiki/>[[Kotlin/collections|المجموعة]] كوسيطين.
* <code>[[Kotlin/collections/filterNot|filterNot()]]</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> المُمرّر إلى الدالة.


==مصادر==
==مصادر==
* [https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.collections/filter-indexed-to.html الدالة  filterNotNullTo()‎ في التوثيق الرسميّ للمكتبة القياسيّة في لغة Kotlin.]
* [https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.collections/filter-not-null-to.html الدالة  filterNotNullTo()‎ في التوثيق الرسميّ للمكتبة القياسيّة في لغة Kotlin.]
[[تصنيف:Kotlin]]
[[تصنيف:Kotlin]]
[[تصنيف:Kotlin Functions]]
[[تصنيف:Kotlin Functions]]

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

تضيف الدالةfilterNotNullTo()‎ إلى المعامل destination الممرّر إليها عناصرّ المصفوفة أو المجموعة التي استُدعيت عبرها والتي تخالف قيمتها القيمة null. من الجدير بالذكر أنّ destination ينبغي أن تكون مجموعة قابلة للتغيير (MutableCollection).

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

fun <C : MutableCollection<in T>, T : Any> Array<out T?>.filterNotNullTo(
    destination: C
): C 
fun <C : MutableCollection<in T>, T : Any> Iterable<T?>.filterNotNullTo(
    destination: C
): C

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

المجموعة المتغيرة (MutableCollection) المُمرّرة إلى الدالة filterNotNullTo()‎ بعد إضافةعناصرّ المجموعة المتغيرة (MutableCollection) التي استُدعيت عبرها والتي تخالف قيمتها القيمة null.

أمثلة

استخدام الدالة ()filterNotNullTo مع اللوائح المتغيرة

تعرف الشيفرة الآتية لائحتين متغيرتين (mutableList) باسم list و list2 باستخدام الدالة ()mutableListOf، الأولى مكونة من ستة عناصر والثانية تضم عددًا واحدًا (0)، ثم تستخدم الدالة ()filterNotNullTo لتصفية عناصر اللائحة list التي تساوي null، وتضيف تلك العناصر إلى list2ثم تعرضها:

fun main(args: Array<String>) {
val list = mutableListOf(1, 2, 3, null, 5, 1)
val list2 = mutableListOf(0)

list.filterNotNullTo(list2)

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

انظر أيضًا

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

مصادر