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

من موسوعة حسوب
اذهب إلى التنقل اذهب إلى البحث
(مراجعة)
سطر 1: سطر 1:
<noinclude>{{DISPLAYTITLE: الدالة <code>asIterable()‎</code> في لغة Kotlin}}</noinclude>تُنشئ الدالة <code>asIterable()‎</code>نسخة تكرارية (Iterable instance) والتي تُغلّف المصفوفة الاصلية وتعيد عناصرها عندما تُستخدم في حلقات التكرار (مثل <code>[[Kotlin/control flow#.D8.AA.D8.B9.D8.A8.D9.8A.D8.B1 for|for]]</code>).
+
<noinclude>{{DISPLAYTITLE: الدالة <code>asIterable()‎</code> في لغة Kotlin}}</noinclude>تُنشِئ الدالة <code>asIterable()‎</code>نسخةً تكراريّةً (iterable instance) تُغلّف (wrap) المصفوفة الأصلية وتعيد عناصرَها عندما تُستخدَم في حلقات التكرار (مثل <code>[[Kotlin/control flow#.D8.AA.D8.B9.D8.A8.D9.8A.D8.B1 for|for]]</code>).
 
==البنية العامة==
 
==البنية العامة==
في حال استدعاء الدالة <code>asIterable()‎</code>عبر مصفوفة فستعيد نسخة تكرارية (Iterable instance) والتي تُغلّف المصفوفة التي استُدعيت عبرها وتعيد عناصرها عندما تُستخدم في حلقات التكرار (مثل <code>[[Kotlin/control flow#.D8.AA.D8.B9.D8.A8.D9.8A.D8.B1 for|for]]</code>):<syntaxhighlight lang="kotlin">
+
<syntaxhighlight lang="kotlin">
 
fun <T> Array<out T>.asIterable(): Iterable<T>
 
fun <T> Array<out T>.asIterable(): Iterable<T>
 
fun ByteArray.asIterable(): Iterable<Byte>  
 
fun ByteArray.asIterable(): Iterable<Byte>  
سطر 11: سطر 11:
 
fun BooleanArray.asIterable(): Iterable<Boolean>  
 
fun BooleanArray.asIterable(): Iterable<Boolean>  
 
fun CharArray.asIterable(): Iterable<Char>  
 
fun CharArray.asIterable(): Iterable<Char>  
</syntaxhighlight>يمكن استدعاء الدالة <code>asIterable()‎</code>عبر مجموعة ([[Kotlin/collections|Collection]]) وستُعيدها على شكل مُكرّر (iterable):<syntaxhighlight lang="kotlin">
+
</syntaxhighlight>ويمكن استدعاء الدالة <code>asIterable()‎</code>عبر مجموعة ([[Kotlin/collections|collection]]) لتُعيدها على شكل عنصر تكراريّ (iterable):<syntaxhighlight lang="kotlin">
 
inline fun <T> Iterable<T>.asIterable(): Iterable<T>
 
inline fun <T> Iterable<T>.asIterable(): Iterable<T>
  
</syntaxhighlight>يمكن استدعاء الدالة <code>asIterable()‎</code>عبر قاموس (Map) وستعيد نسخة تكرارية (Iterable instance) والتي تُغلّف القاموس الاصلي وتعيد مداخله (entries) عندما تُستخدم في حلقات التكرار (مثل <code>[[Kotlin/control flow#.D8.AA.D8.B9.D8.A8.D9.8A.D8.B1 for|for]]</code>)::<syntaxhighlight lang="kotlin">
+
</syntaxhighlight>كما ويمكن استدعاء الدالة <code>asIterable()‎</code>عبر عنصر  map وستعيد نسخةً تكراريةً (iterable instance) تُغلّف عنصر map الأصلي وتعيد مداخله (entries) عندما تُستخدم في حلقات التكرار (مثل حلقة <code>[[Kotlin/control flow#.D8.AA.D8.B9.D8.A8.D9.8A.D8.B1 for|for]]</code>):<syntaxhighlight lang="kotlin">
 
inline fun <K, V> Map<out K, V>.asIterable(): Iterable<Entry<K, V>>
 
inline fun <K, V> Map<out K, V>.asIterable(): Iterable<Entry<K, V>>
  
</syntaxhighlight>يُلاحَظ وجود الكلمة المفتاحية <code>inline</code> للدلالة على أن هذه الدالة مباشرة، وللمزيد من التفاصيل راجع [[Kotlin/inline functions|توثيق الدوال المباشرة (inline functions)]].
+
</syntaxhighlight>ويُلاحَظ وجود الكلمة المفتاحية <code>inline</code> للدلالة على أن هذه الدالة مباشرة، وللمزيد من التفاصيل راجع [[Kotlin/inline functions|توثيق الدوال المباشرة (inline functions)]].
 
==القيم المعادة==
 
==القيم المعادة==
نسخة تكرارية (Iterable instance). (انظر شرح الدالة أعلاه لمزيد من التفاصيل)
+
نسخة تكرارية (iterable instance). (انظر شرح الدالة أعلاه لمزيدٍ من التفاصيل)
 
==أمثلة==
 
==أمثلة==
 
===استخدام الدالة <code>()asIterable</code> مع المصفوفات===
 
===استخدام الدالة <code>()asIterable</code> مع المصفوفات===
تعرف الشيفرة الآتية مصفوفة باسم <code>array</code> مكونة من أربعة أعداد باستخدام الدالة <code>()arrayOf</code>، ثم تنشئ مُكرّرا باسم <code>iter</code> باستخدام الدالة <code>()asIterable</code>ثم تستخدم ذلك المكرر في حلقة تكرارية <code>[[Kotlin/control flow#.D8.AA.D8.B9.D8.A8.D9.8A.D8.B1 for|for]]</code>:<syntaxhighlight lang="kotlin">
+
تعرِّف الشيفرة الآتية مصفوفةً باسم <code>array</code> مكونةً من أربعة أعداد باستخدام الدالة <code>()arrayOf</code>، ثم تنشئ عنصرًا تكراريًا باسم <code>iter</code> باستخدام الدالة <code>()asIterable</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 array = arrayOf(6,7,8,9)  // انشاء مصفوفة
+
    val array = arrayOf(6,7,8,9)  // إنشاء مصفوفة
val iter = array.asIterable() // انشاء مكرر
+
    val iter = array.asIterable() // إنشاء عنصر تكراري
 
   
 
   
for (i in iter) print(i) // 6789
+
    for (i in iter)  
 +
        print(i) // 6789
 
}
 
}
 
</syntaxhighlight>
 
</syntaxhighlight>
 
==انظر أيضًا==
 
==انظر أيضًا==
*<code>[[Kotlin/collections/asList|asList()]]</code>‎: تعيد لائحة والتي تُغلّف المصفوفة الاصلية.
+
*<code>[[Kotlin/collections/asList|asList()]]</code>‎: تعيد قائمةً تُغلّف المصفوفة الأصلية.
*<code>[[Kotlin/collections/asSequence|asSequence()]]</code>‎: تعيد نسخة من النوع Sequence  والتي تُغلّف المصفوفة الاصلية وتعيد عناصرها عندما تطبق تستخدم في حلقات التكرار (مثل <code>[[Kotlin/control flow#.D8.AA.D8.B9.D8.A8.D9.8A.D8.B1 for|for]]</code>).
+
*<code>[[Kotlin/collections/asSequence|asSequence()]]</code>‎: تعيد نسخةً من النوع sequence والتي تُغلّف المصفوفة الأصليّة وتعيد عناصرها عندما تُستخدَم في حلقات التكرار (مثل حلقة <code>[[Kotlin/control flow#.D8.AA.D8.B9.D8.A8.D9.8A.D8.B1 for|for]]</code>).
 
==مصادر==
 
==مصادر==
<span> </span>
+
*[https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.collections/as-iterable.html صفحة الدالة  asIterable()‎ في التوثيق الرسميّ للمكتبة القياسيّة في لغة Kotlin.]
*[https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.collections/as-iterable.html الدالة  asIterable()‎ في التوثيق الرسميّ للمكتبة القياسيّة في لغة Kotlin.]
 
 
[[تصنيف:Kotlin]]
 
[[تصنيف:Kotlin]]
[[تصنيف:Kotlin Functions]]
+
[[تصنيف:Kotlin Function]]

مراجعة 05:05، 2 يوليو 2018

تُنشِئ الدالة asIterable()‎نسخةً تكراريّةً (iterable instance) تُغلّف (wrap) المصفوفة الأصلية وتعيد عناصرَها عندما تُستخدَم في حلقات التكرار (مثل for).

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

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

ويمكن استدعاء الدالة asIterable()‎عبر مجموعة (collection) لتُعيدها على شكل عنصر تكراريّ (iterable):

inline fun <T> Iterable<T>.asIterable(): Iterable<T>

كما ويمكن استدعاء الدالة asIterable()‎عبر عنصر map وستعيد نسخةً تكراريةً (iterable instance) تُغلّف عنصر map الأصلي وتعيد مداخله (entries) عندما تُستخدم في حلقات التكرار (مثل حلقة for):

inline fun <K, V> Map<out K, V>.asIterable(): Iterable<Entry<K, V>>

ويُلاحَظ وجود الكلمة المفتاحية inline للدلالة على أن هذه الدالة مباشرة، وللمزيد من التفاصيل راجع توثيق الدوال المباشرة (inline functions).

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

نسخة تكرارية (iterable instance). (انظر شرح الدالة أعلاه لمزيدٍ من التفاصيل)

أمثلة

استخدام الدالة ()asIterable مع المصفوفات

تعرِّف الشيفرة الآتية مصفوفةً باسم array مكونةً من أربعة أعداد باستخدام الدالة ()arrayOf، ثم تنشئ عنصرًا تكراريًا باسم iter باستخدام الدالة ()asIterable وذلك لاستخدامه في الحلقة التكرارية for:

fun main(args: Array<String>) {
    val array = arrayOf(6,7,8,9)  // إنشاء مصفوفة
    val iter = array.asIterable() // إنشاء عنصر تكراري
 
    for (i in iter) 
        print(i) // 6789
}

انظر أيضًا

  • asList()‎: تعيد قائمةً تُغلّف المصفوفة الأصلية.
  • asSequence()‎: تعيد نسخةً من النوع sequence والتي تُغلّف المصفوفة الأصليّة وتعيد عناصرها عندما تُستخدَم في حلقات التكرار (مثل حلقة for).

مصادر