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

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

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

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

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

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

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?

يمكن استدعاء الدالة minBy()‎ عبر القواميس:

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

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

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

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

أمثلة

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

تعرف الشيفرة الآتية مصفوفة باسم array مكونة من أربعة سلاسل نصية باستخدام الدالة ()arrayOf، ثم تستدعي الدالة ()minBy عبر array مع تمرير دالة تعيد طول السلاسل النصية للحصول على أصغر سلسلة نصية في المصفوفة array من حيث الطول، ثم تطبع الناتج:

fun main(args: Array<String>) {
val array = arrayOf("foo", "hsoub", "g", "vol")
        
println(array.minBy {it.length})   // g
}

انظر أيضًا

مصادر