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