الفرق بين المراجعتين ل"Kotlin/collections/maxBy"

من موسوعة حسوب
اذهب إلى التنقل اذهب إلى البحث
(أنشأ الصفحة ب'<noinclude>{{DISPLAYTITLE: الدالة <code>maxBy()‎</code> في لغة Kotlin}}</noinclude> تعيد الدالة<code>maxBy()‎</code> أكبر عنصر في K...')
 
ط
 
(4 مراجعات متوسطة بواسطة 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>null</code> إن كانت فارغة.
+
تجلب الدالة <code>maxBy()‎</code> العنصر أو الزوج الأول من [[Kotlin/Array|المصفوفة]] أو [[Kotlin/collections|المجموعة]] أو الخريطة التي استُدعيت معها والذي أعيدت معه أكبر قيمة عند تطبيق دالة معيَّنة عليه.
 
 
 
==البنية العامة==
 
==البنية العامة==
<syntaxhighlight lang="kotlin">
+
يمكن استدعاء الدالة <code>maxBy()‎</code> مع [[Kotlin/Array|المصفوفات]] و [[Kotlin/collections|المجموعات]] والخرائط''':'''<syntaxhighlight lang="kotlin">
fun Array<out Double>.max(): Double?  
+
inline fun <T, R : Comparable<R>> Array<out T>.maxBy(
fun Array<out Float>.max(): Float?  
+
    selector: (T) -> R
fun FloatArray.max(): Float?  
+
): T?
fun DoubleArray.max(): Double?
+
inline fun <R : Comparable<R>> ByteArray.maxBy(
fun Iterable<Double>.max(): Double?
+
    selector: (Byte) -> R
fun Iterable<Float>.max(): Float?
+
): Byte?
</syntaxhighlight>'''بيئة التشغيل: Kotlin 1.1'''
+
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?
  
إن كان أيّ من العناصر  يساوي <code>NaN</code> فستعيد الدالة<code>maxBy()‎</code> القيمة <code>NaN</code>: <syntaxhighlight lang="kotlin">
+
inline fun <K, V, R : Comparable<R>> Map<out K, V>.maxBy(
fun <T : Comparable<T>> Array<out T>.max(): T?
+
    selector: (Entry<K, V>) -> R
fun ByteArray.max(): Byte?
+
): Entry<K, V>?
fun ShortArray.max(): Short?
 
fun IntArray.max(): Int?
 
fun LongArray.max(): Long?
 
fun CharArray.max(): Char?
 
fun <T : Comparable<T>> Iterable<T>.max(): T?  
 
 
</syntaxhighlight>
 
</syntaxhighlight>
==القيم المٌعادة==
+
 
أكبر عنصر في  [[Kotlin/Array|المصفوفة]] أو [[Kotlin/collections|المجموعة]] التي استُدعيت عبرها، أو <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>مكونة من ستة أعداد باستخدام الدالة <code>()arrayOf</code>، ثم تستدعي الدالة <code>()maxBy</code> عبر <code>array</code>  للحصول على أكبر عدد فيها<nowiki/>، ثم تطبع الناتج:<syntaxhighlight lang="kotlin">
 
 
fun main(args: Array<String>) {
 
fun main(args: Array<String>) {
val array = arrayOf(0, 2, 2, 4, 7, 5)
+
    val array = arrayOf("مستقل", "أكاديمية حسوب", "خمسات", "موسوعة حسوب")
       
+
 
println(array.max())   // 7
+
    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/maxWith|maxWith()‎]]</code>: تجلب العنصر أو الزوج الأول من [[Kotlin/Array|المصفوفة]] أو [[Kotlin/collections|المجموعة]] أو الخريطة التي استُدعيت معها والذي له أكبر قيمة بحسب الموازن <code>comparator</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 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 المعطى.

مصادر