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

من موسوعة حسوب
اذهب إلى التنقل اذهب إلى البحث
(أنشأ الصفحة ب'<noinclude>{{DISPLAYTITLE: الدالة <code>filterIndexedTo()‎</code> في لغة Kotlin}}</noinclude> تعيد الدالة<code>filterIndexedTo()‎</code> Kotli...')
 
سطر 1: سطر 1:
 
<noinclude>{{DISPLAYTITLE: الدالة <code>filterIndexedTo()‎</code> في لغة Kotlin}}</noinclude>
 
<noinclude>{{DISPLAYTITLE: الدالة <code>filterIndexedTo()‎</code> في لغة Kotlin}}</noinclude>
تعيد الدالة<code>filterIndexedTo()‎</code> [[Kotlin/Array|لائحة]] تحتوي عناصر [[Kotlin/Array|المصفوفة]] أو [[Kotlin/collections|المجموعة]] التي تحقق الشرط المنطقي <code>predicate()‎</code> المُمرّر إلى الدالة، الدالة المنطقية <code>predicate()‎</code> تأخذ فهرس العنصر وقيمته كمعامل وتعيد قيمة منطقية.
+
تضيف الدالة<code>filterIndexedTo()‎</code> إلى المعامل <code>destination</code> الممرّر إليها عناصرّ [[Kotlin/collections|المجموعة]] المتغيرة (<code>MutableCollection</code>) التي استُدعيت عبرها والتي تحقق الشرط المنطقي <code>predicate()‎</code> المُمرّر إلى الدالة، الدالة المنطقية <code>predicate()‎</code> تأخذ فهرس العنصر وقيمته كمعاملَين وتعيد قيمة منطقية.
  
 
==البنية العامة==
 
==البنية العامة==
 
<syntaxhighlight lang="kotlin">
 
<syntaxhighlight lang="kotlin">
inline fun <T> Array<out T>.filterIndexed(
+
inline fun <T, C : MutableCollection<in T>> Array<out T>.filterIndexedTo(
 +
    destination: C,
 
     predicate: (index: Int, T) -> Boolean
 
     predicate: (index: Int, T) -> Boolean
): List<T>
+
): C
inline fun ByteArray.filterIndexed(
+
inline fun <C : MutableCollection<in Byte>> ByteArray.filterIndexedTo(
 +
    destination: C,
 
     predicate: (index: Int, Byte) -> Boolean
 
     predicate: (index: Int, Byte) -> Boolean
): List<Byte>
+
): C
inline fun ShortArray.filterIndexed(
+
inline fun <C : MutableCollection<in Short>> ShortArray.filterIndexedTo(
 +
    destination: C,
 
     predicate: (index: Int, Short) -> Boolean
 
     predicate: (index: Int, Short) -> Boolean
): List<Short>
+
): C
inline fun IntArray.filterIndexed(
+
inline fun <C : MutableCollection<in Int>> IntArray.filterIndexedTo(
 +
    destination: C,
 
     predicate: (index: Int, Int) -> Boolean
 
     predicate: (index: Int, Int) -> Boolean
): List<Int>
+
): C
inline fun LongArray.filterIndexed(
+
inline fun <C : MutableCollection<in Long>> LongArray.filterIndexedTo(
 +
    destination: C,
 
     predicate: (index: Int, Long) -> Boolean
 
     predicate: (index: Int, Long) -> Boolean
): List<Long>
+
): C
inline fun FloatArray.filterIndexed(
+
inline fun <C : MutableCollection<in Float>> FloatArray.filterIndexedTo(
 +
    destination: C,
 
     predicate: (index: Int, Float) -> Boolean
 
     predicate: (index: Int, Float) -> Boolean
): List<Float>
+
): C
inline fun DoubleArray.filterIndexed(
+
inline fun <C : MutableCollection<in Double>> DoubleArray.filterIndexedTo(
 +
    destination: C,
 
     predicate: (index: Int, Double) -> Boolean
 
     predicate: (index: Int, Double) -> Boolean
): List<Double>
+
): C
inline fun BooleanArray.filterIndexed(
+
inline fun <C : MutableCollection<in Boolean>> BooleanArray.filterIndexedTo(
 +
    destination: C,
 
     predicate: (index: Int, Boolean) -> Boolean
 
     predicate: (index: Int, Boolean) -> Boolean
): List<Boolean>
+
): C
inline fun CharArray.filterIndexed(
+
inline fun <C : MutableCollection<in Char>> CharArray.filterIndexedTo(
 +
    destination: C,
 
     predicate: (index: Int, Char) -> Boolean
 
     predicate: (index: Int, Char) -> Boolean
): List<Char>
+
): C
inline fun <T> Iterable<T>.filterIndexed(
+
inline fun <T, C : MutableCollection<in T>> Iterable<T>.filterIndexedTo(
 +
    destination: C,
 
     predicate: (index: Int, T) -> Boolean
 
     predicate: (index: Int, T) -> Boolean
): List<T>
+
): C
 +
 
 
</syntaxhighlight>يُلاحَظ وجود الكلمة المفتاحية <code>inline</code> للدلالة على أن هذه الدالة مباشرة، وللمزيد من التفاصيل راجع <nowiki/>[[Kotlin/inline functions|توثيق الدوال المباشرة (inline functions)]].
 
</syntaxhighlight>يُلاحَظ وجود الكلمة المفتاحية <code>inline</code> للدلالة على أن هذه الدالة مباشرة، وللمزيد من التفاصيل راجع <nowiki/>[[Kotlin/inline functions|توثيق الدوال المباشرة (inline functions)]].
 
== القيم المٌعادة ==
 
== القيم المٌعادة ==
[[Kotlin/Array|لائحة]] تحتوي عناصر [[Kotlin/Array|المصفوفة]] أو [[Kotlin/collections|المجموعة]] التي تحقق الشرط المنطقي <code>predicate()‎</code> المُمرّر إلى الدالة.
+
[[Kotlin/collections|المجموعة]] الممررة إلى الدالة<code>filterIndexedTo()‎</code>  بعد إضافةعناصرّ [[Kotlin/collections|المجموعة]] المتغيرة (<code>MutableCollection</code>) التي استُدعيت عبرها والتي تحقق الشرط المنطقي <code>predicate()‎</code> المُمرّر إلى الدالة.
  
 
==أمثلة==
 
==أمثلة==
===استخدام الدالة <code>()filterIndexedTo</code> مع المصفوفات===
+
===استخدام الدالة <code>()filterIndexedTo</code> مع اللوائح المتغيرة===
تعرف الشيفرة الآتية [[Kotlin/Array|مصفوفة]] باسم <code>array</code>مكونة من ستة أعداد باستخدام الدالة <code>()arrayOf</code>، ثم تستخدم الدالة <code>()filterIndexed</code> لتصفية عناصر  [[Kotlin/Array|المصفوفة]] <code>array</code> بواسطة الدالة  <code>()predicate</code> المعرّفة في الشيفرة، وتنشئ [[Kotlin/collections/List|لائحة]] جديدة تضم عناصر [[Kotlin/Array|المصفوفة]] <code>array</code> التي فهرسها أصغر من قيمتها، ثم تطبع الناتج:<syntaxhighlight lang="kotlin">
+
تعرف الشيفرة الآتية [[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">
 
fun main(args: Array<String>) {
 
fun main(args: Array<String>) {
val array = arrayOf(1,2,1,7,3,11)
+
val list = mutableListOf(1, 2, 3, 2, 5, 1)
 +
val list2 = mutableListOf(0)
 
val predicate  : (Int,Int) -> Boolean = {x,y ->  x  < y }
 
val predicate  : (Int,Int) -> Boolean = {x,y ->  x  < y }
  
println(array.filterIndexed(predicate)) // [1, 2, 7, 11]
+
list.filterIndexedTo(list2, predicate)
 +
 
 +
println(list2)// [0, 1, 2, 3, 5]
 
}
 
}
 
</syntaxhighlight>
 
</syntaxhighlight>
 
==انظر أيضًا==
 
==انظر أيضًا==
 
*<code>[[Kotlin/collections/filter|filter()]]</code>‎: تعيد  <nowiki/>[[Kotlin/Array|لائحة]] تحتوي عناصر <nowiki/>[[Kotlin/Array|المصفوفة]] أو <nowiki/>[[Kotlin/collections|المجموعة]] التي تحقق الشرط المنطقي <code>predicate()‎</code> المُمرّر إلى الدالة. وفي حال استدعائها عبرقاموس فستعيد قاموسًا جديدًا مكونًا من كل الأزوج التي تحقق الشرط المنطقي <code>predicate()‎</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/filterIndexed|filterIndexed()]]</code>‎: تعيد <nowiki/>[[Kotlin/Array|لائحة]] تحتوي عناصر <nowiki/>[[Kotlin/Array|المصفوفة]] أو <nowiki/>[[Kotlin/collections|المجموعة]] التي تحقق الشرط المنطقي <code>predicate()‎</code> المُمرّر إلى الدالة والتي تأخذ قيمة وفهرس عناصر <nowiki/>[[Kotlin/Array|المصفوفة]] أو <nowiki/>[[Kotlin/collections|المجموعة]] كوسيطين.
 +
 
==مصادر==
 
==مصادر==
* [https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.collections/filter-indexed.html الدالة  filterIndexedTo()‎ في التوثيق الرسميّ للمكتبة القياسيّة في لغة Kotlin.]
+
* [https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.collections/filter-indexed-to.html الدالة  filterIndexedTo()‎ في التوثيق الرسميّ للمكتبة القياسيّة في لغة Kotlin.]
 
[[تصنيف:Kotlin]]
 
[[تصنيف:Kotlin]]
 
[[تصنيف:Kotlin Functions]]
 
[[تصنيف:Kotlin Functions]]

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

تضيف الدالةfilterIndexedTo()‎ إلى المعامل destination الممرّر إليها عناصرّ المجموعة المتغيرة (MutableCollection) التي استُدعيت عبرها والتي تحقق الشرط المنطقي 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 للدلالة على أن هذه الدالة مباشرة، وللمزيد من التفاصيل راجع توثيق الدوال المباشرة (inline functions).

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

المجموعة الممررة إلى الدالةfilterIndexedTo()‎ بعد إضافةعناصرّ المجموعة المتغيرة (MutableCollection) التي استُدعيت عبرها والتي تحقق الشرط المنطقي predicate()‎ المُمرّر إلى الدالة.

أمثلة

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

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

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]
}

انظر أيضًا

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

مصادر