الفرق بين المراجعتين لصفحة: «Kotlin/kotlin.text/groupingBy»
< Kotlin | kotlin.text
أنشأ الصفحة ب'<noinclude>{{DISPLAYTITLE: الدالة <code>text.groupingBy()</code> في لغة Kotlin}}</noinclude> تعيد الدالة<code>groupingBy()</code> Kotlin/col...' |
لا ملخص تعديل |
||
سطر 1: | سطر 1: | ||
<noinclude>{{DISPLAYTITLE: الدالة <code>text.groupingBy()</code> في لغة Kotlin}}</noinclude> | <noinclude>{{DISPLAYTITLE: الدالة <code>text.groupingBy()</code> في لغة Kotlin}}</noinclude> | ||
تُنشئ الدالة<code>groupingBy()</code> كائنًا من النوع <code>Grouping</code> من [[Kotlin/CharSequence/index|سلسلة الحروف]] التي استُدعيت عبرها لاستخدامه لاحقًا مع عمليات المجموعات (group-and-fold operations)، وذلك باستخدام الدالة المُمرّرة <code>keySelector</code> لاستخلاص مفتاح من كل عنصر . | |||
==البنية العامة== | ==البنية العامة== | ||
<syntaxhighlight lang="kotlin"> | <syntaxhighlight lang="kotlin"> | ||
inline fun <K> CharSequence. | inline fun <K> CharSequence.groupingBy( | ||
keySelector: (Char) -> K | crossinline keySelector: (Char) -> K | ||
): | ): Grouping<Char, K> | ||
</syntaxhighlight> | </syntaxhighlight><nowiki/><nowiki/><nowiki/><nowiki/>يُلاحَظ وجود الكلمة المفتاحية <code>inline</code> للدلالة على أن هذه الدالة مباشرة، وللمزيد من التفاصيل راجع <nowiki/>[[Kotlin/inline functions|توثيق الدوال المباشرة (inline functions)]]. | ||
يُلاحَظ وجود الكلمة المفتاحية <code>inline</code> للدلالة على أن هذه الدالة مباشرة، وللمزيد من التفاصيل راجع <nowiki/>[[Kotlin/inline functions|توثيق الدوال المباشرة (inline functions)]]. | |||
==القيم المٌعادة== | ==القيم المٌعادة== | ||
كائن من النوع <code>Grouping</code>. | |||
==أمثلة== | ==أمثلة== | ||
===استخدام الدالة <code>()groupingBy</code> مع السلاسل النصية مع تمرير معامل واحد=== | ===استخدام الدالة <code>()groupingBy</code> مع السلاسل النصية مع تمرير معامل واحد=== | ||
تعرِّف الشيفرة الآتية [[Kotlin/String|سلسلة نصية]] باسم <code>str</code>، | تعرِّف الشيفرة الآتية [[Kotlin/String|سلسلة نصية]] باسم <code>str</code>، ثم تُنشئ منه كائنًا من النوع <code>Grouping</code> باسم <code>grouping</code> باستخدام الدالة <code>()groupingBy</code>، وتمرّر إليها دالة، ثم تطبع الناتج:<syntaxhighlight lang="kotlin"> | ||
fun main(args: Array<String>) { | fun main(args: Array<String>) { | ||
val str = "abcdsafddssfghjjffhgggfeeregtgggfgddghhgfdqdgdg" | val str = "abcdsafddssfghjjffhgggfeeregtgggfgddghhgfdqdgdg" | ||
val grouping = str.groupingBy { it.toByte()}.eachCount() | |||
print(grouping) | |||
} | } | ||
</syntaxhighlight>المُخرجات<syntaxhighlight lang="kotlin"> | </syntaxhighlight>المُخرجات<syntaxhighlight lang="kotlin"> | ||
{97= | {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} | ||
</syntaxhighlight> | </syntaxhighlight> | ||
=== | ==انظر أيضًا== | ||
* <code>[[Kotlin/kotlin.text/groupByTo|groupByTo()]]</code>: تجمّع الدالة<code>groupByTo()</code> عناصر <nowiki/>[[Kotlin/CharSequence/index|سلسلة الحروف]] التي استُدعيت عبرها وتضيفها إلى القاموس المُمرّر <code>destination</code> حيث مفاتيحه تعيدها الدالة الممرّرة <code>keySelector()</code> مُطبّقة على كل عناصر [[Kotlin/CharSequence/index|سلسلة الحروف]]، وقيمُه لوائح تضم العناصر المقابلة، وفي حال تمرير معامل ثالث <code>valueTransform</code> فإنّ القيم ستكون لوائح تضم ناتج تطبيق الدالة <code>valueTransform</code> على العناصر المقابلة . ثم تعيد القاموس<code>destination.</code> | |||
* <code>[[Kotlin/kotlin.text/groupBy|groupBy()]]</code>: تعيد قاموسًا يُجمّع حروف سلسلة الحروف التي استُدعيت عبرها حيث مفاتيحه تعيدها الدالة المُمرّرة <code>keySelector</code> وقيمه لوائحُ تضم عناصر سلسلة الحروف (أو ناتج تمرير عناصر <nowiki/>[[Kotlin/Array|المصفوفة]] أو <nowiki/>[[Kotlin/collections|المجموعة]] على الدالة <code>valueTransform</code> في حال تمريرها). | |||
==مصادر== | ==مصادر== | ||
*[http://kotlinlang.org/api/latest/jvm/stdlib/kotlin.text/ | *[http://kotlinlang.org/api/latest/jvm/stdlib/kotlin.text/grouping-by.html الدالة text.groupingBy() في التوثيق الرسمي للمكتبة القياسية في لغة Kotlin] | ||
[[تصنيف:Kotlin]] | [[تصنيف:Kotlin]] | ||
[[تصنيف:Kotlin Functions]] | [[تصنيف:Kotlin Functions]] |
مراجعة 18:25، 9 يوليو 2018
تُنشئ الدالة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
في حال تمريرها).