الفرق بين المراجعتين لصفحة: «Kotlin/collections/withIndex»
لا ملخص تعديل |
لا ملخص تعديل |
||
| سطر 3: | سطر 3: | ||
==البنية العامة== | ==البنية العامة== | ||
يمكن استدعاء الدالة<code>withIndex()</code> عبر [[Kotlin/Array|المصفوفات]]:<syntaxhighlight lang="kotlin"> | يمكن استدعاء الدالة<code>withIndex()</code> عبر [[Kotlin/Array|المصفوفات]]:<syntaxhighlight lang="kotlin"> | ||
fun <T | 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>> | |||
</syntaxhighlight>يمكن استدعاء الدالة<code>withIndex()</code> عبر [[Kotlin/Iterable|المجموعات التكرارية]]:<syntaxhighlight lang="kotlin"> | |||
fun <T> Iterable<T>.withIndex(): Iterable<IndexedValue<T>> | |||
</syntaxhighlight>يمكن استدعاء الدالة<code>withIndex()</code> عبر | </syntaxhighlight>يمكن استدعاء الدالة<code>withIndex()</code> عبر [[Kotlin/iterator|مُكرّر]] (<code>Iterator</code>):<syntaxhighlight lang="kotlin"> | ||
fun <T | fun <T> Iterator<T>.withIndex(): Iterator<IndexedValue<T>> | ||
</syntaxhighlight> | </syntaxhighlight> | ||
==القيمة المُعادة== | ==القيمة المُعادة== | ||
[[Kotlin/ | [[Kotlin/Iterable|مجموعة تكرارية]] خاملة (lazy Iterable) من القيم المُفهرسة لكل عنصر من عناصر [[Kotlin/Array|المصفوفة]] أو [[Kotlin/Iterable|المجموعة التكرارية]] التي استُدعيت عبرها، وفي حال استدعائها عبر [[Kotlin/iterator|مُكرّر]] (<code>Iterator</code>) فستعيد [[Kotlin/iterator|مُكرّر]]<nowiki/>ا يغلّف كل عنصر مُنتج من ذلك [[Kotlin/iterator|المكرّر]] مع القيمة المُفهرسة. | ||
==أمثلة== | ==أمثلة== | ||
===استخدام الدالة <code>()withIndex</code> مع | ===استخدام الدالة <code>()withIndex</code> مع المُكرِّرات=== | ||
تعرّف الشيفرة الآتية <nowiki/>[[Kotlin/ | تعرّف الشيفرة الآتية <nowiki/>[[Kotlin/iterator|مُكرِّرا]]<nowiki/> باسم <code>iterator</code>،<nowiki/> ثم تستخدم الدالة<code>()withIndex</code> على <code>iterator</code> في الحلقة <code>[[Kotlin/control flow#.D8.AA.D8.B9.D8.A8.D9.8A.D8.B1 for|for]]</code>، ثم تطبع الناتج:<syntaxhighlight lang="kotlin"> | ||
fun main(args: Array<String>) { | fun main(args: Array<String>) { | ||
val | val iterator = ('a'..'c').iterator() | ||
for ((index, value) in iterator.withIndex()) { | |||
println("The element at $index is $value") | |||
} | |||
} | } | ||
</syntaxhighlight> | </syntaxhighlight> | ||
| سطر 26: | سطر 37: | ||
*<code>[[Kotlin/collections/toDoubleArray|toDoubleArray()]]</code> : تعيد [[Kotlin/Array|مصفوفة]] من النوع <code>DoubleArray</code>تضم جميع عناصر [[Kotlin/Array|المصفوفة العامة]] (أي من النوع <code>Array<Double></code>) أو [[Kotlin/collections|المجموعة]] التي استُدعيت عبرها. | *<code>[[Kotlin/collections/toDoubleArray|toDoubleArray()]]</code> : تعيد [[Kotlin/Array|مصفوفة]] من النوع <code>DoubleArray</code>تضم جميع عناصر [[Kotlin/Array|المصفوفة العامة]] (أي من النوع <code>Array<Double></code>) أو [[Kotlin/collections|المجموعة]] التي استُدعيت عبرها. | ||
==مصادر== | ==مصادر== | ||
* [https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.collections/ | * [https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.collections/with-index.html الدالة withIndex() في التوثيق الرسميّ للمكتبة القياسيّة في لغة Kotlin.] | ||
[[تصنيف:Kotlin]] | [[تصنيف:Kotlin]] | ||
[[تصنيف:Kotlin Functions]] | [[تصنيف:Kotlin Functions]] | ||
مراجعة 14:11، 24 يونيو 2018
تعيد الدالة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>) أو المجموعة التي استُدعيت عبرها.