الدالة maxWith()‎ في لغة Kotlin

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

تعيد الدالةmaxWith()‎ العنصر الأول في المصفوفة أو المجموعة التي استُدعيت عبره والذي له أكبر قيمة بحسب دالة المقارنة comparator الممرّرة، أو null إن لم يكن هناك أي عنصر يحقق ذلك.

في حال استدعاء الدالة maxWith()‎ عبر قاموس فستعيد المدخل (Entry) الأول في ذلك القاموس والذي له أكبر قيمة حسب دالة المقارنة comparator، أو null إن لم يكن هناك أي مدخل يحقق ذلك.

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

يمكن استدعاء الدالة maxWith()‎ عبر المصفوفات و المجموعات:

fun <T> Array<out T>.maxWith(
    comparator: Comparator<in T>
): T? 
fun ByteArray.maxWith(comparator: Comparator<in Byte>): Byte? 
fun ShortArray.maxWith(
    comparator: Comparator<in Short>
): Short?
fun IntArray.maxWith(comparator: Comparator<in Int>): Int?
fun LongArray.maxWith(comparator: Comparator<in Long>): Long? 
fun FloatArray.maxWith(
    comparator: Comparator<in Float>
): Float?
fun DoubleArray.maxWith(
    comparator: Comparator<in Double>
): Double?
fun BooleanArray.maxWith(
    comparator: Comparator<in Boolean>
): Boolean? 
fun CharArray.maxWith(comparator: Comparator<in Char>): Char? 
fun <T> Iterable<T>.maxWith(comparator: Comparator<in T>): T?

بيئة التشغيل: JVM

fun <T> Array<out T>.maxWith(
    comparator: Comparator<in T>
): T?
fun ByteArray.maxWith(comparator: Comparator<in Byte>): Byte? 
fun ShortArray.maxWith(
    comparator: Comparator<in Short>
): Short?
fun IntArray.maxWith(comparator: Comparator<in Int>): Int? 
fun LongArray.maxWith(comparator: Comparator<in Long>): Long? 
fun FloatArray.maxWith(
    comparator: Comparator<in Float>
): Float?
fun DoubleArray.maxWith(
    comparator: Comparator<in Double>
): Double?
fun BooleanArray.maxWith(
    comparator: Comparator<in Boolean>
): Boolean?
fun CharArray.maxWith(comparator: Comparator<in Char>): Char? 
fun <T> Iterable<T>.maxWith(comparator: Comparator<in T>): T?

بيئة التشغيل: JS يمكن استدعاء الدالة maxWith()‎ عبر القواميس:

inline fun <K, V> Map<out K, V>.maxWith(
    comparator: Comparator<in Entry<K, V>>
): Entry<K, V>?

بيئة التشغيل: JVM

inline fun <K, V> Map<out K, V>.maxWith(
    comparator: Comparator<in Entry<K, V>>
): Entry<K, V>?

بيئة التشغيل: JS

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

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

العنصر الأول في المصفوفة أو المجموعة التي استُدعيت عبره والذي له أكبر قيمة بحسب دالة المقارنة comparator الممرّرة، أو null إن لم يكن هناك أي عنصر يحقق ذلك.

في حال استدعاء الدالة maxWith()‎ عبر قاموس فستعيد المدخل (Entry) الأول في ذلك القاموس والذي له أكبر قيمة حسب دالة المقارنة comparator، أو null إن لم يكن هناك أي مدخل يحقق ذلك.

أمثلة

استخدام الدالة ()maxWith مع المصفوفات

تعرف الشيفرة الآتية مصفوفة باسم arrayمكونة من ستة أعداد باستخدام الدالة ()arrayOf، ثم تستدعي الدالة ()maxWith عبر array مع تمرير مقارِن comparator، ثم تطبع الناتج:

fun main(args: Array<String>) {
    val array = arrayOf(1, 2, 3, 4, 5,6)

    println(array.maxWith(Comparator { a, b -> b - a })) // 1
}

انظر أيضًا

مصادر