الدالة 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")
}
}
أنظر أيضًا
union() : تعيد مجموعة من النوع Set تضم جميع عناصر المصفوفة أو المجموعة التكرارية التي استُدعيت عبرها والمجموعة التكرارية المُمرّرة.toByteArray() : تعيد مصفوفة من النوعByteArrayتضم جميع عناصر المصفوفة العامة (أي من النوعArray<Byte>) أو المجموعة التي استُدعيت عبرها.toDoubleArray() : تعيد مصفوفة من النوعDoubleArrayتضم جميع عناصر المصفوفة العامة (أي من النوعArray<Double>) أو المجموعة التي استُدعيت عبرها.