الفرق بين المراجعتين لصفحة: «Kotlin/collections/maxBy»

من موسوعة حسوب
لا ملخص تعديل
طلا ملخص تعديل
 
(3 مراجعات متوسطة بواسطة مستخدمين اثنين آخرين غير معروضة)
سطر 1: سطر 1:
<noinclude>{{DISPLAYTITLE: الدالة <code>maxBy()‎</code> في لغة Kotlin}}</noinclude>
<noinclude>{{DISPLAYTITLE: الدالة <code>maxBy()‎</code> في Kotlin}}</noinclude>
تعيد الدالة<code>maxBy()‎</code> العنصر الأول في  [[Kotlin/Array|المصفوفة]] أو [[Kotlin/collections|المجموعة]] التي استُدعيت عبره والذي له أكبر قيمة معادة من الدالة الممررة <code>selector</code>، أو <code>null</code> إن لم يكن هناك أي عنصر يحقق ذلك.
تجلب الدالة <code>maxBy()‎</code> العنصر أو الزوج الأول من [[Kotlin/Array|المصفوفة]] أو [[Kotlin/collections|المجموعة]] أو الخريطة التي استُدعيت معها والذي أعيدت معه أكبر قيمة عند تطبيق دالة معيَّنة عليه.
 
في حال استدعاء الدالة <code>maxBy()‎</code> عبر [[Kotlin/Map|قاموس]] فستعيد المدخل (Entry) الأول في  ذلك [[Kotlin/Map|القاموس]] والذي له أكبر قيمة معادة من الدالة الممررة <code>selector</code>، أو <code>null</code> إن لم يكن هناك أي مدخل يحقق ذلك.
 
==البنية العامة==
==البنية العامة==
يمكن استدعاء الدالة <code>maxBy()‎</code> عبر  '''[[Kotlin/Array|المصفوفات]] و [[Kotlin/collections|المجموعات]]:'''<syntaxhighlight lang="kotlin">
يمكن استدعاء الدالة <code>maxBy()‎</code> مع [[Kotlin/Array|المصفوفات]] و [[Kotlin/collections|المجموعات]] والخرائط''':'''<syntaxhighlight lang="kotlin">
inline fun <T, R : Comparable<R>> Array<out T>.maxBy(
inline fun <T, R : Comparable<R>> Array<out T>.maxBy(
     selector: (T) -> R
     selector: (T) -> R
سطر 37: سطر 34:
): T?
): T?


</syntaxhighlight>يمكن استدعاء الدالة <code>maxBy()‎</code> عبر [[Kotlin/Map|القواميس]]:<syntaxhighlight lang="kotlin">
inline fun <K, V, R : Comparable<R>> Map<out K, V>.maxBy(
inline fun <K, V, R : Comparable<R>> Map<out K, V>.maxBy(
     selector: (Entry<K, V>) -> R
     selector: (Entry<K, V>) -> R
): Entry<K, V>?
): 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>selector</code> ===
دالةٌ تطبَّق على كل عنصر من عناصر [[Kotlin/Array|المصفوفة]] أو [[Kotlin/collections|المجموعة]] أو الخريطة المعطاة. يمرر إليها العنصر، وتعيد قيمة مقابلة له.
 
==القيم المعادة==
يعاد العنصر أو الزوج الأول من [[Kotlin/Array|المصفوفة]] أو [[Kotlin/collections|المجموعة]] أو الخريطة المعطاة والذي أعطى أكبر قيمة عند تطبيق الدالة <code>selector</code> عليه، أو تُعاد القيمة <code>null</code> إن لم يكن هناك أي عنصر.
==أمثلة==
==أمثلة==
===استخدام الدالة <code>()maxBy</code> مع المصفوفات===
تعرف الشيفرة الآتية <nowiki/>[[Kotlin/Array|مصفوفة]] باسم <code>array</code> باستخدام الدالة <code>()arrayOf</code> تحوي سلاسل نصية ثمَّ تستدعي الدالة <code>()maxBy</code> لمعرفة أطول سلسلة نصية:<syntaxhighlight lang="kotlin">
تعرف الشيفرة الآتية <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("foo", "hsoub", "g", "vol")
    val array = arrayOf("مستقل", "أكاديمية حسوب", "خمسات", "موسوعة حسوب")
       
 
println(array.maxBy {it.length})   // hsoub
    println(array.maxBy { it.length }) // أكاديمية حسوب
}
}
</syntaxhighlight>
</syntaxhighlight>
===انظر أيضًا===
==انظر أيضًا==
*<code>[[Kotlin/collections/min|min()]]</code>: تعيد أصغر عنصر في  [[Kotlin/Array|المصفوفة]] أو [[Kotlin/collections|المجموعة]] التي استُدعيت عبرها، أو <code>null</code> إن كانت فارغة.
*الدالة <code>[[Kotlin/collections/minBy|minBy()]]</code>: تجلب العنصر أو الزوج الأول من [[Kotlin/Array|المصفوفة]] أو [[Kotlin/collections|المجموعة]] أو الخريطة التي استُدعيت معها والذي أعيدت معه أصغر قيمة عند تطبيق دالة معيَّنة عليه.
 
*الدالة <code>[[Kotlin/collections/max|max()]]</code>‎: تجلب أكبر عنصر في [[Kotlin/Array|المصفوفة]] أو [[Kotlin/collections|المجموعة]] التي استُدعيت معها.
* <code>[[Kotlin/collections/max|max()]]</code>‎: تعيد أكبر عنصر في <nowiki/>[[Kotlin/Array|المصفوفة]] أو <nowiki/>[[Kotlin/collections|المجموعة]] التي استُدعيت عبرها، أو <code>null</code> إن كانت فارغة.
*الدالة <code>[[Kotlin/collections/maxWith|maxWith()‎]]</code>: تجلب العنصر أو الزوج الأول من [[Kotlin/Array|المصفوفة]] أو [[Kotlin/collections|المجموعة]] أو الخريطة التي استُدعيت معها والذي له أكبر قيمة بحسب الموازن <code>comparator</code> المعطى.
 
==مصادر==
==مصادر==
*[https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.collections/max-by.html الدالة  maxBy()‎ في التوثيق الرسميّ للمكتبة القياسيّة في لغة Kotlin.]
*[https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.collections/max-by.html صفحة الدالة maxBy()‎ في التوثيق الرسميّ للمكتبة القياسيّة في لغة Kotlin.]
[[تصنيف:Kotlin]]
[[تصنيف:Kotlin]]
[[تصنيف:Kotlin Functions]]
[[تصنيف:Kotlin Function]]
[[تصنيف:Kotlin Collection]]

المراجعة الحالية بتاريخ 09:24، 8 سبتمبر 2018

تجلب الدالة 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 المعطى.

مصادر