الدالة asSequence()‎ في لغة Kotlin

من موسوعة حسوب
مراجعة 14:28، 10 مايو 2018 بواسطة محمد-بغات (نقاش | مساهمات) (أنشأ الصفحة ب'<noinclude>{{DISPLAYTITLE: الدالة <code>asSequence()‎</code> في لغة Kotlin}}</noinclude>تُنشئ الدالة <code>asSequence()‎</code>نسخة تكر...')
(فرق) → مراجعة أقدم | المراجعة الحالية (فرق) | مراجعة أحدث ← (فرق)

تُنشئ الدالة asSequence()‎نسخة تكرارية (Iterable instance) والتي تُغلّف المصفوفة الاصلية وتعيد عناصرها عندما تُستخدم في حلقات التكرار (مثل for).

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

في حال استدعاء الدالة asSequence()‎عبر مصفوفة فستعيد نسخة تكرارية (Iterable instance) والتي تُغلّف المصفوفة التي استُدعيت عبرها وتعيد عناصرها عندما تُستخدم في حلقات التكرار (مثل 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>

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

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

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

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

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

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

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

أمثلة

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

تعرف الشيفرة الآتية مصفوفة باسم array مكونة من أربعة أعداد باستخدام الدالة ()arrayOf، ثم تنشئ مُكرّرا باسم iter باستخدام الدالة ()asSequenceثم تستخدم ذلك المكرر في حلقة تكرارية 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).

مصادر