الفرق بين المراجعتين لصفحة: «Kotlin/collections/asSequence»

من موسوعة حسوب
مراجعة
طلا ملخص تعديل
سطر 1: سطر 1:
<noinclude>{{DISPLAYTITLE: الدالة <code>asSequence()‎</code> في لغة Kotlin}}</noinclude>تُنشِئ الدالة <code>asSequence()‎</code> نسخةً (instance) من النوع <code>sequence</code> والتي تُغلّف المصفوفة الأصلية وتعيد عناصرها عندما تُستخدَم في حلقات التكرار (مثل حلقة <code>[[Kotlin/control flow#.D8.AA.D8.B9.D8.A8.D9.8A.D8.B1 for|for]]</code>).
<noinclude>{{DISPLAYTITLE: الدالة <code>asSequence()‎</code> في Kotlin}}</noinclude>تُنشِئ الدالة <code>asSequence()‎</code> نسخةً (instance) من النوع <code>sequence</code> والتي تُغلّف المصفوفة الأصلية وتعيد عناصرها عندما تُستخدَم في حلقات التكرار (مثل حلقة <code>[[Kotlin/control flow#.D8.AA.D8.B9.D8.A8.D9.8A.D8.B1 for|for]]</code>).
==البنية العامة==
==البنية العامة==
تختلف بحسب نوع المصفوفة التي تُستدعَى عبرها:<syntaxhighlight lang="kotlin">
تختلف بحسب نوع المصفوفة التي تُستدعَى عبرها:<syntaxhighlight lang="kotlin">
سطر 17: سطر 17:
</syntaxhighlight>
</syntaxhighlight>
==القيم المعادة==
==القيم المعادة==
نسخة من النوع <code>sequence</code>. (انظر شرح الدالة أعلاه لمزيدٍ من التفاصيل)
تُعاد نسخة من النوع <code>sequence</code> (انظر شرح الدالة أعلاه لمزيدٍ من التفاصيل).
==أمثلة==
==أمثلة==
===استخدام الدالة <code>()asSequence</code> مع المصفوفات===
===استخدام الدالة <code>()asSequence</code> مع المصفوفات===
سطر 38: سطر 38:
</syntaxhighlight>
</syntaxhighlight>
==انظر أيضًا==
==انظر أيضًا==
*<code>[[Kotlin/collections/asList|asList()]]</code>‎: تعيد قائمةً تُغلّف (wrap) المصفوفة الأصلية التي استُدعيت عبرها.
*الدالة <code>[[Kotlin/collections/asList|asList()]]</code>‎: تعيد قائمةً تُغلّف (wrap) المصفوفة الأصلية التي استُدعيت عبرها.


* <code>[[Kotlin/collections/asIterable|asIterable()]]</code>‎: تُعيد نسخةً تكراريّةً (iterable instance) تُغلّف (wrap) المصفوفة الأصلية وتعيد عناصرَها عندما تُستخدَم في حلقات التكرار (مثل <code>[[Kotlin/control flow#.D8.AA.D8.B9.D8.A8.D9.8A.D8.B1 for|for]]</code>).
* الدالة <code>[[Kotlin/collections/asIterable|asIterable()]]</code>‎: تُعيد نسخةً تكراريّةً (iterable instance) تُغلّف (wrap) المصفوفة الأصلية وتعيد عناصرَها عندما تُستخدَم في حلقات التكرار (مثل <code>[[Kotlin/control flow#.D8.AA.D8.B9.D8.A8.D9.8A.D8.B1 for|for]]</code>).


==مصادر==
==مصادر==

مراجعة 06:42، 23 يوليو 2018

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

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

تختلف بحسب نوع المصفوفة التي تُستدعَى عبرها:

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

ويمكن استدعاء الدالة asSequence()‎عبر مجموعة (collection) وستعيد نسخةً من النوع sequence والتي تُغلّف المجموعة التي استُدعيت عبرها وتعيد عناصرها عندما تُستخدَم في حلقات التكرار (مثل for):

fun <T> Iterable<T>.asSequence(): Sequence<T>

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

fun <K, V> Map<out K, V>.asSequence(): Sequence<Entry<K, V>>

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

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

أمثلة

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

تعرِّف الشيفرة الآتية مصفوفة محارف باسم array مكونة من ثلاثة أحرف باستخدام الدالة ()arrayOf، ثم تنشئ نسخةً من النوع sequence باسم sequence باستخدام الدالة ()asSequence وتضم عناصر sequence لسلسلةٍ نصيةٍ (string) عبر الدالة joinToString()‎ ثم تطبع الناتج:

fun main(args: Array<String>) {
    val array = arrayOf('a', 'b', 'c')
    val sequence = array.asSequence()

    println(sequence.joinToString()) // a, b, c
}

استخدام الدالة ()asSequence مع القوائم (Lists)

تعرف الشيفرة الآتية قائمةً باسم collection مكونة من ثلاثة أحرف باستخدام الدالة ()listOf، ثم تنشِئ نسخةً من النوع sequence باسم sequence وذلك باستخدام الدالة ()asSequenceثم تضم عناصر sequence لسلسلةٍ نصيةٍ (string) عبر الدالة joinToString()‎ ثم تطبع الناتج:

fun main(args: Array<String>) {
    val collection = listOf('a', 'b', 'c')
    val sequence = collection.asSequence()

    println(sequence.joinToString()) // a, b, c
}

انظر أيضًا

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

مصادر