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

من موسوعة حسوب
اذهب إلى التنقل اذهب إلى البحث
ط
ط (استبدال النص - 'Kotlin Functions' ب'Kotlin Function')
سطر 56: سطر 56:
 
*[https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.collections/filter-indexed.html صفحة الدالة filterIndexed()‎ في التوثيق الرسميّ للمكتبة القياسيّة في لغة Kotlin.]<noinclude>{{DISPLAYTITLE: الدالة <code>filterIndexed()‎</code> في Kotlin}}</noinclude>
 
*[https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.collections/filter-indexed.html صفحة الدالة filterIndexed()‎ في التوثيق الرسميّ للمكتبة القياسيّة في لغة Kotlin.]<noinclude>{{DISPLAYTITLE: الدالة <code>filterIndexed()‎</code> في Kotlin}}</noinclude>
 
[[تصنيف:Kotlin]]
 
[[تصنيف:Kotlin]]
[[تصنيف:Kotlin Functions]]
+
[[تصنيف:Kotlin Function]]

مراجعة 11:37، 30 أغسطس 2018

ترشِّح الدالة filterIndexed()‎ عناصر المصفوفة أو المجموعة المعطاة التي أعيدت القيمة true معها عند تطبيق الدالة predicate()‎ المُمرّر عليها، إذ يمرَّر فهرس كل عنصر وقيمته إلى الدالة predicate()‎ ثم تعيد بدورها قيمة منطقيَّة.

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

inline fun <T> Array<out T>.filterIndexed(
    predicate: (index: Int, T) -> Boolean
): List<T> 
inline fun ByteArray.filterIndexed(
    predicate: (index: Int, Byte) -> Boolean
): List<Byte> 
inline fun ShortArray.filterIndexed(
    predicate: (index: Int, Short) -> Boolean
): List<Short> 
inline fun IntArray.filterIndexed(
    predicate: (index: Int, Int) -> Boolean
): List<Int> 
inline fun LongArray.filterIndexed(
    predicate: (index: Int, Long) -> Boolean
): List<Long> 
inline fun FloatArray.filterIndexed(
    predicate: (index: Int, Float) -> Boolean
): List<Float> 
inline fun DoubleArray.filterIndexed(
    predicate: (index: Int, Double) -> Boolean
): List<Double> 
inline fun BooleanArray.filterIndexed(
    predicate: (index: Int, Boolean) -> Boolean
): List<Boolean> 
inline fun CharArray.filterIndexed(
    predicate: (index: Int, Char) -> Boolean
): List<Char> 
inline fun <T> Iterable<T>.filterIndexed(
    predicate: (index: Int, T) -> Boolean
): List<T>

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

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

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

أمثلة

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

تعرِّف الشيفرة الآتية مصفوفة باسم array باستخدام الدالة ()arrayOf ثمَّ تعرِّف الدالة ()predicate لاستعمالها مع الدالة ()filterIndexed في ترشيح العناصر التي فهرسها أصغر من قيمتها:

fun main(args: Array<String>) {
    val array = arrayOf(1, 2, 1, 7, 3, 11)
    val predicate: (Int, Int) -> Boolean = { x, y -> x < y }

    println(array.filterIndexed(predicate)) // [1, 2, 7, 11]
}

انظر أيضًا

  • الدالة filterIndexedTo()‎: تضيف إلى المجموعة المتغيرة destination المُمرَّر إليها عناصر المصفوفة أو المجموعة المعطاة التي أعيدت القيمة true مع كل عنصر منها عند تطبيق الدالة predicate()‎ المُمرّر عليها. يمرَّر فهرس كل عنصر وقيمته إلى الدالة predicate()‎ ثم تعيد بدورها قيمة منطقيَّة.
  • الدالة filter(): ترشِّح عناصر المصفوفة أو المجموعة أو أزواج الخرائط المعطاة التي تحقِّق شرطًا معيَّنًا ثمّ تعيدها.
  • الدالة mapIndexed()‎: تعيد قائمةً تحوي ناتج تطبيق الدالة المُمرّرة إليها على فهرس وقيمة كل عنصر من عناصر المصفوفة أو المجموعة التي استُدعيت معها.
  • الدالة drop()‎: تعيد قائمة تحوي جميع عناصر المصفوفة أو المجموعة التي استُدعيت معها باستثناء آخر n عنصر.
  • الدالة elementAt()‎: تجلب عنصرًا ذي فهرس معيَّن من المصفوفة أو المجموعة التي استُدعيت معها.
  • الدالة fill()‎: تبدِّل قيمة جديدة معطاة مكان عناصر محدَّدة في المصفوفة أو القائمة التي تستدعى معها.
  • الدالة mapIndexed()‎: تعيد قائمةً تحوي ناتج تطبيق الدالة المُمرّرة إليها على فهرس وقيمة كل عنصر من عناصر المصفوفة أو المجموعة التي استُدعيت معها.

مصادر