الفرق بين المراجعتين ل"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> أكبر عنصر في  [[Kotlin/Array|المصفوفة]] أو [[Kotlin/collections|المجموعة]]  التي استُدعيت عبرها، أو <code>null</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 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">
+
</syntaxhighlight>يمكن استدعاء الدالة <code>maxBy()‎</code> عبر [[Kotlin/Map|القواميس]]:<syntaxhighlight lang="kotlin">
fun <T : Comparable<T>> Array<out T>.max(): T?
+
inline fun <K, V, R : Comparable<R>> Map<out K, V>.maxBy(
fun ByteArray.max(): Byte?
+
    selector: (Entry<K, V>) -> R
fun ShortArray.max(): Short?
+
): Entry<K, V>?
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> إن كانت فارغة.
+
العنصر الأول في  [[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>مكونة من ستة أعداد باستخدام الدالة <code>()arrayOf</code>، ثم تستدعي الدالة <code>()maxBy</code> عبر <code>array</code>   للحصول على أكبر عدد فيها<nowiki/>، ثم تطبع الناتج:<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(0, 2, 2, 4, 7, 5)
+
val array = arrayOf("foo", "hsoub", "g", "vol")
 
          
 
          
println(array.max())  // 7
+
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
}

انظر أيضًا

مصادر