الدالة text.associateBy()‎ في لغة Kotlin

من موسوعة حسوب

تعيد الدالة associateBy()‎ قاموسًا (map) يحتوي عناصر سلسلة الحروف التي استُدعيت عبرها مفهرسةً بقيمة المفتاح المعاد من تمرير تلك العناصر إلى الدالة keySelector.

إن كان لزوجين نفس المفتاح (key) فالأخير هو الذي سيُضاف إلى القاموس.

يحافظ القاموسالمُعاد على نفس ترتيب التكرار الخاص بسلسلة الحروف الأصليَّة.

البنية العامة

inline fun <K> CharSequence.associateBy(
    keySelector: (Char) -> K
): Map<K, Char>

يلاحظ وجود الكلمة المفتاحية inline يدل على أنَّ هذه الدالة مباشرة (للمزيد من التفاصيل راجع توثيق الدوال المباشرة (inline functions)).

القيم المعادة

قاموس.

أمثلة

استخدام الدالة ()associateBy مع سلسلة نصية

تعرِّف الشيفرة الآتية سلسلة نصية باسم str، ثمَّ تنشئ قاموسًاباسم map بتمرير الدالة()upper (التي تحول الحروف إلى الحالة الكبيرة [UpperCase]) إلى()associateBy ثم تطبع الناتج:

fun main(args: Array<String>) {
val str = "hsoub"
 val upper: (Char) -> Char = {
        it.toUpperCase()
    }
    val map = str.associateBy(upper)

    println(map) // {H=h, S=s, O=o, U=u, B=b}
}

انظر أيضًا

  • associateByTo(): تعيد قاموسا متغيرا (mutable map) يحتوي أزواجًا من "مفتاح/قيمة"، إذ القيمة هي عناصر سلسلة الحروف التي استُدعيت عبرها، والمفتاح هو الناتج المعاد من تمرير تلك العناصر إلى الدالة keySelector
  • all(): تعيد الدالة all()‎ القيمة true إن كانت كل الحروف تحقق الشرط المنطقي المُمرّر predicate
  • asSequence(): تنشئ كائنًا من الصنف Sequence والذي يُغلّف سلسلة الحروف التي استُدعيت عبرها، لأجل استعمالها في الحلقات التكرارية.

مصادر