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

من موسوعة حسوب
اذهب إلى التنقل اذهب إلى البحث
ط (مراجعة وتدقيق.)
سطر 1: سطر 1:
<noinclude>{{DISPLAYTITLE: الدالة <code>withIndex()‎</code> في لغة Kotlin}}</noinclude>
+
<noinclude>{{DISPLAYTITLE: الدالة <code>withIndex()‎</code> في Kotlin}}</noinclude>
تعيد الدالة<code>withIndex()‎</code> [[Kotlin/Iterable|مجموعة تكرارية]] خاملة (lazy Iterable) من القيم المُفهرسة لكل عنصر من عناصر  [[Kotlin/Array|المصفوفة]] أو [[Kotlin/Iterable|المجموعة التكرارية]]  التي استُدعيت عبرها، وفي حال استدعائها عبر  [[Kotlin/iterator|مُكرّر]] (<code>Iterator</code>)<nowiki/>  فستعيد [[Kotlin/iterator|مُكرّر]]<nowiki/>ا يغلّف كل عنصر مُنتج من ذلك [[Kotlin/iterator|المكرّر]] مع القيمة المُفهرسة.
+
<nowiki/><nowiki/>تعيد الدالة <code>withIndex()‎</code> [[Kotlin/Iterable|مجموعة تكرارية]] خاملة (lazy Iterable) من القيم المُفهرسة لكل عنصر من عناصر  [[Kotlin/Array|المصفوفة]] أو [[Kotlin/Iterable|المجموعة التكرارية]] التي استُدعيت معها، أو تعيد [[Kotlin/iterator|مُكرّرًا]] (iterator) يغلّف كل عنصر أنتجه [[Kotlin/iterator|المكرّر]] (Iterator) المستدعى مع الدالة مع القيمة المُفهرسة أي يعيد القيمة مع فهرسها.
 
==البنية العامة==
 
==البنية العامة==
يمكن استدعاء الدالة<code>withIndex()‎</code> عبر [[Kotlin/Array|المصفوفات]]:<syntaxhighlight lang="kotlin">
+
يمكن استدعاء الدالة <code>withIndex()‎</code> مع [[Kotlin/Array|المصفوفات]] أو [[Kotlin/Iterable|المجموعات التكرارية]] أو [[Kotlin/iterator|المكرِّرات]]:<syntaxhighlight lang="kotlin">
 
fun <T> Array<out T>.withIndex(): Iterable<IndexedValue<T>>
 
fun <T> Array<out T>.withIndex(): Iterable<IndexedValue<T>>
 
fun ByteArray.withIndex(): Iterable<IndexedValue<Byte>>  
 
fun ByteArray.withIndex(): Iterable<IndexedValue<Byte>>  
سطر 12: سطر 12:
 
fun BooleanArray.withIndex(): Iterable<IndexedValue<Boolean>>  
 
fun BooleanArray.withIndex(): Iterable<IndexedValue<Boolean>>  
 
fun CharArray.withIndex(): Iterable<IndexedValue<Char>>  
 
fun CharArray.withIndex(): Iterable<IndexedValue<Char>>  
</syntaxhighlight>يمكن استدعاء الدالة<code>withIndex()‎</code>  عبر  [[Kotlin/Iterable|المجموعات التكرارية]]:<syntaxhighlight lang="kotlin">
+
 
 
fun <T> Iterable<T>.withIndex(): Iterable<IndexedValue<T>>  
 
fun <T> Iterable<T>.withIndex(): Iterable<IndexedValue<T>>  
  
</syntaxhighlight>يمكن استدعاء الدالة<code>withIndex()‎</code>  عبر  [[Kotlin/iterator|مُكرّر]] (<code>Iterator</code>):<syntaxhighlight lang="kotlin">
 
 
fun <T> Iterator<T>.withIndex(): Iterator<IndexedValue<T>>  
 
fun <T> Iterator<T>.withIndex(): Iterator<IndexedValue<T>>  
  
 
</syntaxhighlight>
 
</syntaxhighlight>
==القيمة المُعادة==
+
==القيمة المعادة==
[[Kotlin/Iterable|مجموعة تكرارية]] خاملة (lazy Iterable) من القيم المُفهرسة لكل عنصر من عناصر [[Kotlin/Array|المصفوفة]] أو [[Kotlin/Iterable|المجموعة التكرارية]]  التي استُدعيت عبرها، وفي حال استدعائها عبر  [[Kotlin/iterator|مُكرّر]] (<code>Iterator</code>) فستعيد [[Kotlin/iterator|مُكرّر]]<nowiki/>ا يغلّف كل عنصر مُنتج من ذلك [[Kotlin/iterator|المكرّر]] مع القيمة المُفهرسة.
+
تعاد [[Kotlin/Iterable|مجموعة تكرارية]] خاملة (lazy Iterable) من القيم المُفهرسة لكل عنصر من عناصر [[Kotlin/Array|المصفوفة]] أو [[Kotlin/Iterable|المجموعة التكرارية]] (iterable) المعطاة، أو يعاد [[Kotlin/iterator|مُكرّر]] يغلّف كل عنصر أنتجه [[Kotlin/iterator|المكرّر]] (iterator) إن أعطي مع القيمة المُفهرسة.
 
==أمثلة==
 
==أمثلة==
===استخدام الدالة <code>()withIndex</code> مع المُكرِّرات===
+
استعمال الدالة <code>()withIndex</code> مع مكرِّر وحلقة تكرارية (الحلقة <code>[[Kotlin/control flow#.D8.AA.D8.B9.D8.A8.D9.8A.D8.B1 for|for]]</code>):<syntaxhighlight lang="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 iterator = ('a'..'c').iterator()
+
    val iterator = ('a'..'c').iterator()
  
for ((index, value) in iterator.withIndex()) {
+
    for ((index, value) in iterator.withIndex()) {
    println("The element at $index is $value")
+
        println("The element at $index is $value")
}  
+
    }
 
}
 
}
 +
</syntaxhighlight>ناتج تنفيذ الشيفرة السابقة هو:<syntaxhighlight lang="text">
 +
The element at 0 is a
 +
The element at 1 is b
 +
The element at 2 is c
 +
 
</syntaxhighlight>
 
</syntaxhighlight>
==أنظر أيضًا==
+
==انظر أيضًا==
 
*<code>[[Kotlin/collections/union|union()]]</code>‎ : تعيد مجموعة من النوع Set تضم جميع عناصر <nowiki/>[[Kotlin/Array|المصفوفة]]  أو المجموعة التكرارية  التي استُدعيت عبرها والمجموعة التكرارية المُمرّرة.
 
*<code>[[Kotlin/collections/union|union()]]</code>‎ : تعيد مجموعة من النوع Set تضم جميع عناصر <nowiki/>[[Kotlin/Array|المصفوفة]]  أو المجموعة التكرارية  التي استُدعيت عبرها والمجموعة التكرارية المُمرّرة.
 
*<code>[[Kotlin/collections/toByteArray|toByteArray()]]</code>‎ : تعيد <nowiki/>[[Kotlin/Array|مصفوفة]] من النوع <code>ByteArray</code>تضم جميع عناصر <nowiki/>[[Kotlin/Array|المصفوفة العامة]] (أي من النوع <code>Array<Byte>‎</code>) أو <nowiki/>[[Kotlin/collections|المجموعة]]  التي استُدعيت عبرها.
 
*<code>[[Kotlin/collections/toByteArray|toByteArray()]]</code>‎ : تعيد <nowiki/>[[Kotlin/Array|مصفوفة]] من النوع <code>ByteArray</code>تضم جميع عناصر <nowiki/>[[Kotlin/Array|المصفوفة العامة]] (أي من النوع <code>Array<Byte>‎</code>) أو <nowiki/>[[Kotlin/collections|المجموعة]]  التي استُدعيت عبرها.
 
*<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/with-index.html الدالة  withIndex()‎ في التوثيق الرسميّ للمكتبة القياسيّة في لغة Kotlin.]
+
*[https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.collections/with-index.html صفحة الدالة withIndex()‎ في التوثيق الرسميّ للمكتبة القياسيّة في لغة Kotlin.]
 
[[تصنيف:Kotlin]]
 
[[تصنيف:Kotlin]]
 
[[تصنيف:Kotlin Functions]]
 
[[تصنيف:Kotlin Functions]]

مراجعة 16:52، 9 أغسطس 2018

تعيد الدالة withIndex()‎ مجموعة تكرارية خاملة (lazy Iterable) من القيم المُفهرسة لكل عنصر من عناصر المصفوفة أو المجموعة التكرارية التي استُدعيت معها، أو تعيد مُكرّرًا (iterator) يغلّف كل عنصر أنتجه المكرّر (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>> 

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

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

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

تعاد مجموعة تكرارية خاملة (lazy Iterable) من القيم المُفهرسة لكل عنصر من عناصر المصفوفة أو المجموعة التكرارية (iterable) المعطاة، أو يعاد مُكرّر يغلّف كل عنصر أنتجه المكرّر (iterator) إن أعطي مع القيمة المُفهرسة.

أمثلة

استعمال الدالة ()withIndex مع مكرِّر وحلقة تكرارية (الحلقة for):

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

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

ناتج تنفيذ الشيفرة السابقة هو:

The element at 0 is a
The element at 1 is b
The element at 2 is c

انظر أيضًا

مصادر