الفرق بين المراجعتين ل"Kotlin/kotlin.text/groupingBy"

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

مصادر