الفرق بين المراجعتين ل"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>
) أو المجموعة التي استُدعيت عبرها.