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

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

تجلب الدالة 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

دالةٌ تطبَّق على كل عنصر من عناصر المصفوفة أو المجموعة أو الخريطة المعطاة. يمرر إليها العنصر، وتعيد قيمة مقابلة له.

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

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

أمثلة

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

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

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

انظر أيضًا

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

مصادر