الدالة withIndex()‎ في لغة Kotlin

من موسوعة حسوب
اذهب إلى التنقل اذهب إلى البحث

تعيد الدالةwithIndex()‎ مجموعة تكرارية خاملة (lazy Iterable) من القيم المُفهرسة لكل عنصر من عناصر المصفوفة أو المجموعة التكرارية  التي استُدعيت عبرها، وفي حال استدعائها عبر مُكرّر (Iterator) فستعيد مُكرّرا يغلّف كل عنصر مُنتج من ذلك المكرّر مع القيمة المُفهرسة.

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

يمكن استدعاء الدالةwithIndex()‎ عبر المصفوفات:

fun <T> Array<out T>.withIndex(): Iterable<IndexedValue<T>>
fun ByteArray.withIndex(): Iterable<IndexedValue<Byte>> 
fun ShortArray.withIndex(): Iterable<IndexedValue<Short>>
fun IntArray.withIndex(): Iterable<IndexedValue<Int>> 
fun LongArray.withIndex(): Iterable<IndexedValue<Long>> 
fun FloatArray.withIndex(): Iterable<IndexedValue<Float>> 
fun DoubleArray.withIndex(): Iterable<IndexedValue<Double>> 
fun BooleanArray.withIndex(): Iterable<IndexedValue<Boolean>> 
fun CharArray.withIndex(): Iterable<IndexedValue<Char>>

يمكن استدعاء الدالةwithIndex()‎ عبر المجموعات التكرارية:

fun <T> Iterable<T>.withIndex(): Iterable<IndexedValue<T>>

يمكن استدعاء الدالةwithIndex()‎ عبر مُكرّر (Iterator):

fun <T> Iterator<T>.withIndex(): Iterator<IndexedValue<T>>

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

مجموعة تكرارية خاملة (lazy Iterable) من القيم المُفهرسة لكل عنصر من عناصر المصفوفة أو المجموعة التكرارية  التي استُدعيت عبرها، وفي حال استدعائها عبر مُكرّر (Iterator) فستعيد مُكرّرا يغلّف كل عنصر مُنتج من ذلك المكرّر مع القيمة المُفهرسة.

أمثلة

استخدام الدالة ()withIndex مع المُكرِّرات

تعرّف الشيفرة الآتية  مُكرِّرا باسم iterator، ثم تستخدم الدالة()withIndex على iterator في الحلقة for، ثم تطبع الناتج:

fun main(args: Array<String>) {
val iterator = ('a'..'c').iterator()

for ((index, value) in iterator.withIndex()) {
    println("The element at $index is $value")
} 
}

أنظر أيضًا

مصادر