الدالة text.groupingBy() في لغة Kotlin
< Kotlin | kotlin.text
تُنشئ الدالةgroupingBy() كائنًا من النوع Grouping من سلسلة الحروف التي استُدعيت عبرها لاستخدامه لاحقًا مع عمليات المجموعات (group-and-fold operations)، وذلك باستخدام الدالة المُمرّرة keySelector لاستخلاص مفتاح من كل عنصر .
البنية العامة
inline fun <K> CharSequence.groupingBy(
crossinline keySelector: (Char) -> K
): Grouping<Char, K>
يُلاحَظ وجود الكلمة المفتاحية inline للدلالة على أن هذه الدالة مباشرة، وللمزيد من التفاصيل راجع توثيق الدوال المباشرة (inline functions).
القيم المعادة
كائن من النوع Grouping.
أمثلة
استخدام الدالة ()groupingBy مع السلاسل النصية مع تمرير معامل واحد
تعرِّف الشيفرة الآتية سلسلة نصية باسم str، ثم تُنشئ منه كائنًا من النوع Grouping باسم grouping باستخدام الدالة ()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}
انظر أيضًا
groupByTo(): تجمّع الدالةgroupByTo()عناصر سلسلة الحروف التي استُدعيت عبرها وتضيفها إلى القاموس المُمرّرdestinationحيث مفاتيحه تعيدها الدالة الممرّرةkeySelector()مُطبّقة على كل عناصر سلسلة الحروف، وقيمُه لوائح تضم العناصر المقابلة، وفي حال تمرير معامل ثالثvalueTransformفإنّ القيم ستكون لوائح تضم ناتج تطبيق الدالةvalueTransformعلى العناصر المقابلة . ثم تعيد القاموسdestination.groupBy(): تعيد قاموسًا يُجمّع حروف سلسلة الحروف التي استُدعيت عبرها حيث مفاتيحه تعيدها الدالة المُمرّرةkeySelectorوقيمه لوائحُ تضم عناصر سلسلة الحروف (أو ناتج تمرير عناصر المصفوفة أو المجموعة على الدالةvalueTransformفي حال تمريرها).