الدالة CharSequence.groupingBy()‎ في Kotlin

من موسوعة حسوب
مراجعة 14:46، 3 سبتمبر 2018 بواسطة جميل-بيلوني (نقاش | مساهمات) (مراجعة وتدقيق.)
(فرق) → مراجعة أقدم | المراجعة الحالية (فرق) | مراجعة أحدث ← (فرق)

تُنشئ الدالة groupingBy()‎ موردًا (source) من النوع Grouping من سلسلة المحارف التي استُدعيت معها لاستخدامه لاحقًا مع عمليات التجميع (group-and-fold operations) وذلك باستخدام الدالة keySelector المُمرّرة إليها لاستخلاص مفتاح من كل محرف.

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

inline fun <K> CharSequence.groupingBy(
    crossinline keySelector: (Char) -> K
): Grouping<Char, K>

الإصدار المطلوب: kotlin 1.1.

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

المعاملات

keySelector

الدالة المستعملة في استخلاص مفتاح من كل محرف.

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

يُعاد موردٌ من النوع Grouping من المصفوفة أو المجموعة المعطاة لاستخدامه لاحقًا مع عمليات التجميع (group-and-fold).

أمثلة

مثالٌ على استعمال الدالة ()groupingBy:

fun main(args: Array<String>) {
    val str = "abcdsafddssfghjjffhgggfeeregtgggfgddghhgfdqdgdg"
    val grouping = str.groupingBy { it.toByte() }.eachCount()

    print(grouping)
}

ناتج تنفيذ هذا المثال هو:

{97=2, 98=1, 99=1, 100=8, 115=3, 102=7, 103=13, 104=4, 106=2, 101=3, 114=1, 116=1, 113=1}

انظر أيضًا

  • الدالة groupBy()‎: تجمِّع محارف السلسلة التي استُدعيت معها في مجموعات، إذ تطبق دالة محدَّدة على كل عنصر ثمَّ تعاد خريطة تحوي مجموعاتٍ مفتاحُ كلِّ واحدةٍ منها مرتبطٌ بقائمة من المحارف المقابلة.

مصادر