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

من موسوعة حسوب
اذهب إلى التنقل اذهب إلى البحث
(أنشأ الصفحة ب'<noinclude>{{DISPLAYTITLE: الدالة <code>maxWith()‎</code> في لغة Kotlin}}</noinclude> تعيد الدالة<code>maxWith()‎</code> العنصر الأول...')
 
سطر 1: سطر 1:
 
<noinclude>{{DISPLAYTITLE: الدالة <code>maxWith()‎</code> في لغة Kotlin}}</noinclude>
 
<noinclude>{{DISPLAYTITLE: الدالة <code>maxWith()‎</code> في لغة Kotlin}}</noinclude>
تعيد الدالة<code>maxWith()‎</code> العنصر الأول في  [[Kotlin/Array|المصفوفة]] أو [[Kotlin/collections|المجموعة]]  التي استُدعيت عبره والذي له أكبر قيمة معادة من الدالة الممررة <code>selector</code>، أو <code>null</code> إن لم يكن هناك أي عنصر يحقق ذلك.
+
تعيد الدالة<code>maxWith()‎</code> العنصر الأول في  [[Kotlin/Array|المصفوفة]] أو [[Kotlin/collections|المجموعة]]  التي استُدعيت عبره والذي له أكبر قيمة بحسب دالة المقارنة <code>comparator</code> الممرّرة، أو <code>null</code> إن لم يكن هناك أي عنصر يحقق ذلك.
  
في حال استدعاء الدالة <code>maxWith()‎</code> عبر [[Kotlin/Map|قاموس]] فستعيد المدخل (Entry) الأول في  ذلك [[Kotlin/Map|القاموس]] والذي له أكبر قيمة معادة من الدالة الممررة <code>selector</code>، أو <code>null</code> إن لم يكن هناك أي مدخل يحقق ذلك.
+
في حال استدعاء الدالة <code>maxWith()‎</code> عبر [[Kotlin/Map|قاموس]] فستعيد المدخل (Entry) الأول في  ذلك [[Kotlin/Map|القاموس]] والذي له أكبر قيمة حسب دالة المقارنة <code>comparator</code>، أو <code>null</code> إن لم يكن هناك أي مدخل يحقق ذلك.
  
 
==البنية العامة==
 
==البنية العامة==
 
يمكن استدعاء الدالة <code>maxWith()‎</code> عبر  '''[[Kotlin/Array|المصفوفات]] و [[Kotlin/collections|المجموعات]]:'''<syntaxhighlight lang="kotlin">
 
يمكن استدعاء الدالة <code>maxWith()‎</code> عبر  '''[[Kotlin/Array|المصفوفات]] و [[Kotlin/collections|المجموعات]]:'''<syntaxhighlight lang="kotlin">
inline fun <T, R : Comparable<R>> Array<out T>.maxBy(
+
fun <T> Array<out T>.maxWith(
     selector: (T) -> R
+
     comparator: Comparator<in T>
 
): T?  
 
): T?  
inline fun <R : Comparable<R>> ByteArray.maxBy(
+
fun ByteArray.maxWith(comparator: Comparator<in Byte>): Byte?  
    selector: (Byte) -> R
+
fun ShortArray.maxWith(
): Byte?  
+
     comparator: Comparator<in Short>
inline fun <R : Comparable<R>> ShortArray.maxBy(
+
): Short?
     selector: (Short) -> R
+
fun IntArray.maxWith(comparator: Comparator<in Int>): Int?
): Short?  
+
fun LongArray.maxWith(comparator: Comparator<in Long>): Long?  
inline fun <R : Comparable<R>> IntArray.maxBy(
+
fun FloatArray.maxWith(
    selector: (Int) -> R
+
     comparator: Comparator<in Float>
): Int?  
+
): Float?
inline fun <R : Comparable<R>> LongArray.maxBy(
+
fun DoubleArray.maxWith(
    selector: (Long) -> R
+
     comparator: Comparator<in Double>
): Long?  
+
): Double?
inline fun <R : Comparable<R>> FloatArray.maxBy(
+
fun BooleanArray.maxWith(
     selector: (Float) -> R
+
     comparator: Comparator<in Boolean>
): Float?  
 
inline fun <R : Comparable<R>> DoubleArray.maxBy(
 
     selector: (Double) -> R
 
): Double?  
 
inline fun <R : Comparable<R>> BooleanArray.maxBy(
 
     selector: (Boolean) -> R
 
 
): Boolean?  
 
): Boolean?  
inline fun <R : Comparable<R>> CharArray.maxBy(
+
fun CharArray.maxWith(comparator: Comparator<in Char>): Char?
    selector: (Char) -> R
+
fun <T> Iterable<T>.maxWith(comparator: Comparator<in T>): T?  
): Char?  
+
 
inline fun <T, R : Comparable<R>> Iterable<T>.maxBy(
+
 
     selector: (T) -> R
+
</syntaxhighlight>'''بيئة التشغيل: JVM'''<syntaxhighlight lang="kotlin">
 +
fun <T> Array<out T>.maxWith(
 +
     comparator: Comparator<in T>
 
): T?
 
): T?
 +
fun ByteArray.maxWith(comparator: Comparator<in Byte>): Byte?
 +
fun ShortArray.maxWith(
 +
    comparator: Comparator<in Short>
 +
): Short?
 +
fun IntArray.maxWith(comparator: Comparator<in Int>): Int?
 +
fun LongArray.maxWith(comparator: Comparator<in Long>): Long?
 +
fun FloatArray.maxWith(
 +
    comparator: Comparator<in Float>
 +
): Float?
 +
fun DoubleArray.maxWith(
 +
    comparator: Comparator<in Double>
 +
): Double?
 +
fun BooleanArray.maxWith(
 +
    comparator: Comparator<in Boolean>
 +
): Boolean?
 +
fun CharArray.maxWith(comparator: Comparator<in Char>): Char?
 +
fun <T> Iterable<T>.maxWith(comparator: Comparator<in T>): T?
 +
 +
</syntaxhighlight>'''بيئة التشغيل: JS'''
  
</syntaxhighlight>يمكن استدعاء الدالة <code>maxWith()‎</code> عبر [[Kotlin/Map|القواميس]]:<syntaxhighlight lang="kotlin">
+
يمكن استدعاء الدالة <code>maxWith()‎</code> عبر [[Kotlin/Map|القواميس]]:<syntaxhighlight lang="kotlin">
inline fun <K, V, R : Comparable<R>> Map<out K, V>.maxBy(
+
inline fun <K, V> Map<out K, V>.maxWith(
     selector: (Entry<K, V>) -> R
+
    comparator: Comparator<in Entry<K, V>>
 +
): Entry<K, V>?
 +
</syntaxhighlight>'''بيئة التشغيل: JVM'''<syntaxhighlight lang="kotlin">
 +
inline fun <K, V> Map<out K, V>.maxWith(
 +
     comparator: Comparator<in Entry<K, V>>
 
): Entry<K, V>?
 
): Entry<K, V>?
</syntaxhighlight>
+
</syntaxhighlight>'''بيئة التشغيل: JS'''
 +
 
 +
يُلاحَظ وجود الكلمة المفتاحية <code>inline</code> للدلالة على أن هذه الدالة مباشرة، وللمزيد من التفاصيل راجع <nowiki/>[[Kotlin/inline functions|توثيق الدوال المباشرة (inline functions)]].
 +
 
 
==القيم المٌعادة==
 
==القيم المٌعادة==
العنصر الأول في  [[Kotlin/Array|المصفوفة]] أو [[Kotlin/collections|المجموعة]]  التي استُدعيت عبره والذي له أكبر قيمة معادة من الدالة الممررة <code>selector</code>، أو <code>null</code> إن لم يكن هناك أي عنصر يحقق ذلك.
+
العنصر الأول في  [[Kotlin/Array|المصفوفة]] أو [[Kotlin/collections|المجموعة]]  التي استُدعيت عبره والذي له أكبر قيمة بحسب دالة المقارنة <code>comparator</code> الممرّرة، أو <code>null</code> إن لم يكن هناك أي عنصر يحقق ذلك.
  
في حال استدعاء الدالة <code>maxWith()‎</code> عبر [[Kotlin/Map|قاموس]] فستعيد المدخل (Entry) الأول في  ذلك [[Kotlin/Map|القاموس]] والذي له أكبر قيمة معادة من الدالة الممررة <code>selector</code>، أو <code>null</code> إن لم يكن هناك أي مدخل يحقق ذلك.
+
في حال استدعاء الدالة <code>maxWith()‎</code> عبر [[Kotlin/Map|قاموس]] فستعيد المدخل (Entry) الأول في  ذلك [[Kotlin/Map|القاموس]] والذي له أكبر قيمة حسب دالة المقارنة <code>comparator</code>، أو <code>null</code> إن لم يكن هناك أي مدخل يحقق ذلك.
 
==أمثلة==
 
==أمثلة==
 
===استخدام الدالة <code>()maxWith</code> مع المصفوفات===
 
===استخدام الدالة <code>()maxWith</code> مع المصفوفات===
تعرف الشيفرة الآتية <nowiki/>[[Kotlin/Array|مصفوفة]]<nowiki/> باسم <code>array</code>مكونة من أربعة [[Kotlin/String|سلاسل نصية]] باستخدام الدالة <code>()arrayOf</code>، ثم تستدعي الدالة <code>()maxWith</code> عبر <code>array</code> مع تمرير دالة تعيد طول [[Kotlin/String|السلسلة النصية]] للحصول على أكبر [[Kotlin/String|سلسلة نصية]] في المصفوفة <code>array</code> من حيث الطول<nowiki/>، ثم تطبع الناتج:<syntaxhighlight lang="kotlin">
+
تعرف الشيفرة الآتية <nowiki/>[[Kotlin/Array|مصفوفة]]<nowiki/> باسم <code>array</code>مكونة من ستة أعداد باستخدام الدالة <code>()arrayOf</code>، ثم تستدعي الدالة <code>()maxWith</code> عبر <code>array</code> مع تمرير مقارِن <code>comparator</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(1, 2, 3, 4, 5,6)
       
+
 
println(array.maxBy {it.length})   // hsoub
+
    println(array.maxWith(Comparator { a, b -> b - a })) // 1
 
}
 
}
 
</syntaxhighlight>
 
</syntaxhighlight>
سطر 61: سطر 83:
  
 
==مصادر==
 
==مصادر==
*[https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.collections/max-by.html الدالة  maxWith()‎ في التوثيق الرسميّ للمكتبة القياسيّة في لغة Kotlin.]
+
*[https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.collections/max-with.html الدالة  maxWith()‎ في التوثيق الرسميّ للمكتبة القياسيّة في لغة Kotlin.]
 
[[تصنيف:Kotlin]]
 
[[تصنيف:Kotlin]]
 
[[تصنيف:Kotlin Functions]]
 
[[تصنيف:Kotlin Functions]]

مراجعة 14:03، 31 مايو 2018

تعيد الدالةmaxWith()‎ العنصر الأول في المصفوفة أو المجموعة التي استُدعيت عبره والذي له أكبر قيمة بحسب دالة المقارنة comparator الممرّرة، أو null إن لم يكن هناك أي عنصر يحقق ذلك.

في حال استدعاء الدالة maxWith()‎ عبر قاموس فستعيد المدخل (Entry) الأول في ذلك القاموس والذي له أكبر قيمة حسب دالة المقارنة comparator، أو null إن لم يكن هناك أي مدخل يحقق ذلك.

البنية العامة

يمكن استدعاء الدالة maxWith()‎ عبر المصفوفات و المجموعات:

fun <T> Array<out T>.maxWith(
    comparator: Comparator<in T>
): T? 
fun ByteArray.maxWith(comparator: Comparator<in Byte>): Byte? 
fun ShortArray.maxWith(
    comparator: Comparator<in Short>
): Short?
fun IntArray.maxWith(comparator: Comparator<in Int>): Int?
fun LongArray.maxWith(comparator: Comparator<in Long>): Long? 
fun FloatArray.maxWith(
    comparator: Comparator<in Float>
): Float?
fun DoubleArray.maxWith(
    comparator: Comparator<in Double>
): Double?
fun BooleanArray.maxWith(
    comparator: Comparator<in Boolean>
): Boolean? 
fun CharArray.maxWith(comparator: Comparator<in Char>): Char? 
fun <T> Iterable<T>.maxWith(comparator: Comparator<in T>): T?

بيئة التشغيل: JVM

fun <T> Array<out T>.maxWith(
    comparator: Comparator<in T>
): T?
fun ByteArray.maxWith(comparator: Comparator<in Byte>): Byte? 
fun ShortArray.maxWith(
    comparator: Comparator<in Short>
): Short?
fun IntArray.maxWith(comparator: Comparator<in Int>): Int? 
fun LongArray.maxWith(comparator: Comparator<in Long>): Long? 
fun FloatArray.maxWith(
    comparator: Comparator<in Float>
): Float?
fun DoubleArray.maxWith(
    comparator: Comparator<in Double>
): Double?
fun BooleanArray.maxWith(
    comparator: Comparator<in Boolean>
): Boolean?
fun CharArray.maxWith(comparator: Comparator<in Char>): Char? 
fun <T> Iterable<T>.maxWith(comparator: Comparator<in T>): T?

بيئة التشغيل: JS يمكن استدعاء الدالة maxWith()‎ عبر القواميس:

inline fun <K, V> Map<out K, V>.maxWith(
    comparator: Comparator<in Entry<K, V>>
): Entry<K, V>?

بيئة التشغيل: JVM

inline fun <K, V> Map<out K, V>.maxWith(
    comparator: Comparator<in Entry<K, V>>
): Entry<K, V>?

بيئة التشغيل: JS

يُلاحَظ وجود الكلمة المفتاحية inline للدلالة على أن هذه الدالة مباشرة، وللمزيد من التفاصيل راجع توثيق الدوال المباشرة (inline functions).

القيم المٌعادة

العنصر الأول في المصفوفة أو المجموعة التي استُدعيت عبره والذي له أكبر قيمة بحسب دالة المقارنة comparator الممرّرة، أو null إن لم يكن هناك أي عنصر يحقق ذلك.

في حال استدعاء الدالة maxWith()‎ عبر قاموس فستعيد المدخل (Entry) الأول في ذلك القاموس والذي له أكبر قيمة حسب دالة المقارنة comparator، أو null إن لم يكن هناك أي مدخل يحقق ذلك.

أمثلة

استخدام الدالة ()maxWith مع المصفوفات

تعرف الشيفرة الآتية مصفوفة باسم arrayمكونة من ستة أعداد باستخدام الدالة ()arrayOf، ثم تستدعي الدالة ()maxWith عبر array مع تمرير مقارِن comparator، ثم تطبع الناتج:

fun main(args: Array<String>) {
    val array = arrayOf(1, 2, 3, 4, 5,6)

    println(array.maxWith(Comparator { a, b -> b - a })) // 1
}

انظر أيضًا

مصادر