الدالة 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
في حال تمريرها).