الدالة 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
، ثم تستدعي الدالة ()maxBy
عبر array
مع تمرير دالة تعيد طول السلسلة النصية للحصول على أكبر سلسلة نصية في المصفوفة array
من حيث الطول، ثم تطبع الناتج:
fun main(args: Array<String>) {
val array = arrayOf("foo", "hsoub", "g", "vol")
println(array.maxBy {it.length}) // hsoub
}