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

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

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

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

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

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

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

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

أمثلة

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

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

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

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

استخدام الدالة ()associateBy مع اللوائح

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

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

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

انظر أيضًا

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

مصادر