الفرق بين المراجعتين ل"Kotlin/collections/maxBy"
(أنشأ الصفحة ب'<noinclude>{{DISPLAYTITLE: الدالة <code>maxBy()</code> في لغة Kotlin}}</noinclude> تعيد الدالة<code>maxBy()</code> أكبر عنصر في K...') |
|||
سطر 1: | سطر 1: | ||
<noinclude>{{DISPLAYTITLE: الدالة <code>maxBy()</code> في لغة Kotlin}}</noinclude> | <noinclude>{{DISPLAYTITLE: الدالة <code>maxBy()</code> في لغة Kotlin}}</noinclude> | ||
− | تعيد الدالة<code>maxBy()</code> | + | تعيد الدالة<code>maxBy()</code> العنصر الأول في [[Kotlin/Array|المصفوفة]] أو [[Kotlin/collections|المجموعة]] التي استُدعيت عبره والذي له أكبر قيمة معادة من الدالة الممررة <code>selector</code>، أو <code>null</code> إن لم يكن هناك أي عنصر يحقق ذلك. |
+ | |||
+ | في حال استدعاء الدالة <code>maxBy()</code> عبر [[Kotlin/Map|قاموس]] فستعيد المدخل (Entry) الأول في ذلك [[Kotlin/Map|القاموس]] والذي له أكبر قيمة معادة من الدالة الممررة <code>selector</code>، أو <code>null</code> إن لم يكن هناك أي مدخل يحقق ذلك. | ||
==البنية العامة== | ==البنية العامة== | ||
− | <syntaxhighlight lang="kotlin"> | + | يمكن استدعاء الدالة <code>maxBy()</code> عبر '''[[Kotlin/Array|المصفوفات]] و [[Kotlin/collections|المجموعات]]:'''<syntaxhighlight lang="kotlin"> |
− | fun Array<out | + | inline fun <T, R : Comparable<R>> Array<out T>.maxBy( |
− | fun | + | selector: (T) -> R |
− | fun FloatArray. | + | ): T? |
− | fun DoubleArray. | + | inline fun <R : Comparable<R>> ByteArray.maxBy( |
− | fun | + | selector: (Byte) -> R |
− | fun | + | ): 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? | ||
− | + | </syntaxhighlight>يمكن استدعاء الدالة <code>maxBy()</code> عبر [[Kotlin/Map|القواميس]]:<syntaxhighlight lang="kotlin"> | |
− | fun < | + | inline fun <K, V, R : Comparable<R>> Map<out K, V>.maxBy( |
− | + | selector: (Entry<K, V>) -> R | |
− | + | ): Entry<K, V>? | |
− | |||
− | |||
− | |||
− | |||
</syntaxhighlight> | </syntaxhighlight> | ||
==القيم المٌعادة== | ==القيم المٌعادة== | ||
− | + | العنصر الأول في [[Kotlin/Array|المصفوفة]] أو [[Kotlin/collections|المجموعة]] التي استُدعيت عبره والذي له أكبر قيمة معادة من الدالة الممررة <code>selector</code>، أو <code>null</code> إن لم يكن هناك أي عنصر يحقق ذلك. | |
+ | |||
+ | في حال استدعاء الدالة <code>maxBy()</code> عبر [[Kotlin/Map|قاموس]] فستعيد المدخل (Entry) الأول في ذلك [[Kotlin/Map|القاموس]] والذي له أكبر قيمة معادة من الدالة الممررة <code>selector</code>، أو <code>null</code> إن لم يكن هناك أي مدخل يحقق ذلك. | ||
==أمثلة== | ==أمثلة== | ||
===استخدام الدالة <code>()maxBy</code> مع المصفوفات=== | ===استخدام الدالة <code>()maxBy</code> مع المصفوفات=== | ||
− | تعرف الشيفرة الآتية <nowiki/>[[Kotlin/Array|مصفوفة]]<nowiki/> باسم <code>array</code>مكونة من | + | تعرف الشيفرة الآتية <nowiki/>[[Kotlin/Array|مصفوفة]]<nowiki/> باسم <code>array</code>مكونة من أربعة [[Kotlin/String|سلاسل نصية]] باستخدام الدالة <code>()arrayOf</code>، ثم تستدعي الدالة <code>()maxBy</code> عبر <code>array</code> مع تمرير دالة تعيد طول [[Kotlin/String|السلسلة النصية]] للحصول على أكبر [[Kotlin/String|سلسلة نصية]] في المصفوفة <code>array</code> من حيث الطول<nowiki/>، ثم تطبع الناتج:<syntaxhighlight lang="kotlin"> |
fun main(args: Array<String>) { | fun main(args: Array<String>) { | ||
− | val array = arrayOf( | + | val array = arrayOf("foo", "hsoub", "g", "vol") |
− | println(array. | + | println(array.maxBy {it.length}) // hsoub |
} | } | ||
</syntaxhighlight> | </syntaxhighlight> | ||
===انظر أيضًا=== | ===انظر أيضًا=== | ||
*<code>[[Kotlin/collections/min|min()]]</code>: تعيد أصغر عنصر في [[Kotlin/Array|المصفوفة]] أو [[Kotlin/collections|المجموعة]] التي استُدعيت عبرها، أو <code>null</code> إن كانت فارغة. | *<code>[[Kotlin/collections/min|min()]]</code>: تعيد أصغر عنصر في [[Kotlin/Array|المصفوفة]] أو [[Kotlin/collections|المجموعة]] التي استُدعيت عبرها، أو <code>null</code> إن كانت فارغة. | ||
+ | |||
+ | * <code>[[Kotlin/collections/max|max()]]</code>: تعيد أكبر عنصر في <nowiki/>[[Kotlin/Array|المصفوفة]] أو <nowiki/>[[Kotlin/collections|المجموعة]] التي استُدعيت عبرها، أو <code>null</code> إن كانت فارغة. | ||
+ | |||
==مصادر== | ==مصادر== | ||
− | *[https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.collections/max.html الدالة maxBy() في التوثيق الرسميّ للمكتبة القياسيّة في لغة Kotlin.] | + | *[https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.collections/max-by.html الدالة maxBy() في التوثيق الرسميّ للمكتبة القياسيّة في لغة Kotlin.] |
[[تصنيف:Kotlin]] | [[تصنيف:Kotlin]] | ||
[[تصنيف:Kotlin Functions]] | [[تصنيف:Kotlin Functions]] |
مراجعة 12:57، 31 مايو 2018
تعيد الدالةmaxBy()
العنصر الأول في المصفوفة أو المجموعة التي استُدعيت عبره والذي له أكبر قيمة معادة من الدالة الممررة selector
، أو null
إن لم يكن هناك أي عنصر يحقق ذلك.
في حال استدعاء الدالة maxBy()
عبر قاموس فستعيد المدخل (Entry) الأول في ذلك القاموس والذي له أكبر قيمة معادة من الدالة الممررة selector
، أو null
إن لم يكن هناك أي مدخل يحقق ذلك.
البنية العامة
يمكن استدعاء الدالة 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?
يمكن استدعاء الدالة maxBy()
عبر القواميس:
inline fun <K, V, R : Comparable<R>> Map<out K, V>.maxBy(
selector: (Entry<K, V>) -> R
): Entry<K, V>?
القيم المٌعادة
العنصر الأول في المصفوفة أو المجموعة التي استُدعيت عبره والذي له أكبر قيمة معادة من الدالة الممررة selector
، أو null
إن لم يكن هناك أي عنصر يحقق ذلك.
في حال استدعاء الدالة maxBy()
عبر قاموس فستعيد المدخل (Entry) الأول في ذلك القاموس والذي له أكبر قيمة معادة من الدالة الممررة selector
، أو null
إن لم يكن هناك أي مدخل يحقق ذلك.
أمثلة
استخدام الدالة ()maxBy
مع المصفوفات
تعرف الشيفرة الآتية مصفوفة باسم array
مكونة من أربعة سلاسل نصية باستخدام الدالة ()arrayOf
، ثم تستدعي الدالة ()maxBy
عبر array
مع تمرير دالة تعيد طول السلسلة النصية للحصول على أكبر سلسلة نصية في المصفوفة array
من حيث الطول، ثم تطبع الناتج:
fun main(args: Array<String>) {
val array = arrayOf("foo", "hsoub", "g", "vol")
println(array.maxBy {it.length}) // hsoub
}