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

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


==البنية العامة==
==البنية العامة==
سطر 45: سطر 45:
): C  
): C  


</syntaxhighlight>يُلاحَظ وجود الكلمة المفتاحية <code>inline</code> للدلالة على أن هذه الدالة مباشرة، وللمزيد من التفاصيل راجع <nowiki/>[[Kotlin/inline functions|توثيق الدوال المباشرة (inline functions)]].
</syntaxhighlight>وجود الكلمة المفتاحية <code>inline</code> يدل على أنَّ هذه الدالة مباشرة (لمزيد من التفاصيل، راجع <nowiki/>[[Kotlin/inline functions|توثيق الدوال المباشرة]]).
== القيم المٌعادة ==
== القيم المعادة ==
[[Kotlin/collections|المجموعة]] الممررة إلى الدالة<code>filterIndexedTo()‎</code>  بعد إضافةعناصرّ  [[Kotlin/collections|المجموعة]] المتغيرة (<code>MutableCollection</code>) التي استُدعيت عبرها والتي تحقق الشرط المنطقي <code>predicate()‎</code> المُمرّر إلى الدالة.
تُعاد عناصر [[Kotlin/Array|المصفوفة]] أو [[Kotlin/collections|المجموعة]] المعطاة التي أعيدت القيمة <code>true</code> معها عند تطبيق الدالة <code>predicate()‎</code> المُمرّر عليها والتي أضيفت إلى المعامل <code>destination</code>.


==أمثلة==
==أمثلة==
===استخدام الدالة <code>()filterIndexedTo</code> مع اللوائح المتغيرة===
===استخدام الدالة <code>()filterIndexedTo</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/List|قائمتين]] متغيرتين (mutableList) باسم <code>list</code> و <code>list2</code> باستخدام الدالة <code>()mutableListOf</code>، الأولى مكونة من ستة أعداد والثانية تضم عددًا واحدًا ثمَّ تستخدم الدالة <code>()filterIndexedTo</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, 2, 5, 1)
سطر 63: سطر 63:
</syntaxhighlight>
</syntaxhighlight>
==انظر أيضًا==
==انظر أيضًا==
*<code>[[Kotlin/collections/filter|filter()]]</code>‎: تعيد  <nowiki/>[[Kotlin/Array|لائحة]] تحتوي عناصر <nowiki/>[[Kotlin/Array|المصفوفة]] أو <nowiki/>[[Kotlin/collections|المجموعة]] التي تحقق الشرط المنطقي <code>predicate()‎</code> المُمرّر إلى الدالة. وفي حال استدعائها عبرقاموس فستعيد قاموسًا جديدًا مكونًا من كل الأزوج التي تحقق الشرط المنطقي <code>predicate()‎</code> الممرر إلى الدالة.
* الدالة <nowiki/>[[Kotlin/collections/filter|<code>filter()</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|المجموعة]] كوسيطين.
* الدالة <nowiki/>[[Kotlin/collections/filterIndexed|<code>filterIndexed()</code>‎]]: ترشِّح ترشِّح عناصر <nowiki/>[[Kotlin/Array|المصفوفة]] أو <nowiki/>[[Kotlin/collections|المجموعة]] المعطاة التي تُعاد القيمة <code>true</code> معها عند تطبيق الدالة <code>predicate()‎</code> المُمرّر عليها، إذ يمرَّر فهرس كل عنصر وقيمته إلى الدالة <code>predicate()‎</code> ثم تعيد بدورها قيمة منطقيَّة.
* الدالة <code>[[Kotlin/collections/filterIsInstanceTo|filterIsInstanceTo()‎]]</code>: تضيف عناصر [[Kotlin/Array|المصفوفة]] أو [[Kotlin/collections|المجموعة]] المعطاة التي هي نسخةٌ (instance) من نوع أو [[Kotlin/classes|صنفٍ]] معيّن إلى [[Kotlin/collections/MutableCollection|المجموعة المتغيرة]] <code>destination</code> المُمرّرة إليها.
* الدالة <code>[[Kotlin/collections/drop|drop()]]</code>‎: تعيد قائمة تحوي جميع عناصر <nowiki/>[[Kotlin/Array|المصفوفة]] أو <nowiki/>[[Kotlin/Array|المجموعة]] التي استُدعيت معها باستثناء آخر <code>n</code> عنصر.


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

مراجعة 15:38، 4 يوليو 2018

تضيف الدالة filterIndexedTo()‎ إلى المجموعة المتغيرة destination المُمرَّر إليها عناصر المصفوفة أو المجموعة المعطاة التي أعيدت القيمة true مع كل عنصر منها عند تطبيق الدالة predicate()‎ المُمرّر عليها. يمرَّر فهرس كل عنصر وقيمته إلى الدالة predicate()‎ ثم تعيد بدورها قيمة منطقيَّة.

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

inline fun <T, C : MutableCollection<in T>> Array<out T>.filterIndexedTo(
    destination: C, 
    predicate: (index: Int, T) -> Boolean
): C 
inline fun <C : MutableCollection<in Byte>> ByteArray.filterIndexedTo(
    destination: C, 
    predicate: (index: Int, Byte) -> Boolean
): C 
inline fun <C : MutableCollection<in Short>> ShortArray.filterIndexedTo(
    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

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

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

تُعاد عناصر المصفوفة أو المجموعة المعطاة التي أعيدت القيمة true معها عند تطبيق الدالة predicate()‎ المُمرّر عليها والتي أضيفت إلى المعامل destination.

أمثلة

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

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

fun main(args: Array<String>) {
val list = mutableListOf(1, 2, 3, 2, 5, 1)
val list2 = mutableListOf(0)
val predicate  : (Int,Int) -> Boolean = {x,y ->  x  < y }

list.filterIndexedTo(list2, predicate)

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

انظر أيضًا

مصادر