الدالة maxBy()‎ في Kotlin

من موسوعة حسوب
< Kotlin‏ | collections
مراجعة 11:37، 30 أغسطس 2018 بواسطة عبد اللطيف ايمش (نقاش | مساهمات) (استبدال النص - 'Kotlin Functions' ب'Kotlin Function')
اذهب إلى التنقل اذهب إلى البحث

تجلب الدالة maxBy()‎ العنصر أو الزوج الأول من المصفوفة أو المجموعة أو الخريطة التي استُدعيت معها والذي أعيدت معه أكبر قيمة عند تطبيق دالة معيَّنة عليه.

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

يمكن استدعاء الدالة maxBy()‎ مع المصفوفات و المجموعات والخرائط:

inline fun <T, R : Comparable<R>> Array<out T>.maxBy(
    selector: (T) -> R
): T? 
inline fun <R : Comparable<R>> ByteArray.maxBy(
    selector: (Byte) -> R
): Byte? 
inline fun <R : Comparable<R>> ShortArray.maxBy(
    selector: (Short) -> R
): Short? 
inline fun <R : Comparable<R>> IntArray.maxBy(
    selector: (Int) -> R
): Int? 
inline fun <R : Comparable<R>> LongArray.maxBy(
    selector: (Long) -> R
): Long? 
inline fun <R : Comparable<R>> FloatArray.maxBy(
    selector: (Float) -> R
): Float? 
inline fun <R : Comparable<R>> DoubleArray.maxBy(
    selector: (Double) -> R
): Double? 
inline fun <R : Comparable<R>> BooleanArray.maxBy(
    selector: (Boolean) -> R
): Boolean? 
inline fun <R : Comparable<R>> CharArray.maxBy(
    selector: (Char) -> R
): Char? 
inline fun <T, R : Comparable<R>> Iterable<T>.maxBy(
    selector: (T) -> R
): T?

inline fun <K, V, R : Comparable<R>> Map<out K, V>.maxBy(
    selector: (Entry<K, V>) -> R
): Entry<K, V>?

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

يعاد العنصر أو الزوج الأول من المصفوفة أو المجموعة أو الخريطة المعطاة والذي أعطى أكبر قيمة عند تطبيق الدالة selector عليه، أو تُعاد القيمة null إن لم يكن هناك أي عنصر.

أمثلة

تعرف الشيفرة الآتية مصفوفة باسم array باستخدام الدالة ()arrayOf تحوي سلاسل نصية ثمَّ تستدعي الدالة ()maxBy لمعرفة أطول سلسلة نصية:

fun main(args: Array<String>) {
    val array = arrayOf("مستقل", "أكاديمية حسوب", "خمسات", "موسوعة حسوب")

    println(array.maxBy { it.length }) // أكاديمية حسوب
}

انظر أيضًا

  • الدالة minBy()‎: تجلب العنصر أو الزوج الأول من المصفوفة أو المجموعة أو الخريطة التي استُدعيت معها والذي أعيدت معه أصغر قيمة عند تطبيق دالة معيَّنة عليه.
  • الدالة max()‎: تجلب أكبر عنصر في المصفوفة أو المجموعة التي استُدعيت معها.
  • الدالة maxWith()‎: تجلب العنصر أو الزوج الأول من المصفوفة أو المجموعة أو الخريطة التي استُدعيت معها والذي له أكبر قيمة بحسب الموازن comparator المعطى.

مصادر