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

من موسوعة حسوب
ط تدقيق الأمثلة.
طلا ملخص تعديل
سطر 1: سطر 1:
<noinclude>{{DISPLAYTITLE: الدالة <code>distinctBy()‎</code> في لغة Kotlin}}</noinclude>
<noinclude>{{DISPLAYTITLE: الدالة <code>distinctBy()‎</code> في Kotlin}}</noinclude>
تعيد الدالة <code>distinctBy()‎</code> [[Kotlin/List|قائمة]] تحتوي على العناصر الموجودة في [[Kotlin/Array|المصفوفة]] أو [[Kotlin/Array|المجموعة]] التي استُدعيت معها والتي تعطي نتيجة مختلفة عند تطبيق الدالة <code>selector</code> عليها فقط. تُرتَّب العناصر في القائمة الناتجة بنفس ترتيبها في المصفوفة أو المجموعة الأصليَّة.
تعيد الدالة <code>distinctBy()‎</code> [[Kotlin/List|قائمة]] تحتوي على العناصر الموجودة في [[Kotlin/Array|المصفوفة]] أو [[Kotlin/Array|المجموعة]] التي استُدعيت معها والتي تعطي نتيجة مختلفة عند تطبيق الدالة <code>selector</code> عليها فقط. تُرتَّب العناصر في القائمة الناتجة بنفس ترتيبها في المصفوفة أو المجموعة الأصليَّة.


سطر 68: سطر 68:


==مصادر==
==مصادر==
*[https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.collections/distinct-by.html الدالة distinctBy()‎ في التوثيق الرسميّ للمكتبة القياسيّة في لغة Kotlin.]
*[https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.collections/distinct-by.html صفحة الدالة distinctBy()‎ في التوثيق الرسميّ للمكتبة القياسيّة في لغة Kotlin.]
[[تصنيف:Kotlin]]
[[تصنيف:Kotlin]]
[[تصنيف:Kotlin Functions]]
[[تصنيف:Kotlin Functions]]

مراجعة 06:59، 23 يوليو 2018

تعيد الدالة distinctBy()‎ قائمة تحتوي على العناصر الموجودة في المصفوفة أو المجموعة التي استُدعيت معها والتي تعطي نتيجة مختلفة عند تطبيق الدالة selector عليها فقط. تُرتَّب العناصر في القائمة الناتجة بنفس ترتيبها في المصفوفة أو المجموعة الأصليَّة.

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

تستدعى الدالة distinctBy()‎ مع مصفوفة:

inline fun <T, K> Array<out T>.distinctBy(
    selector: (T) -> K
): List<T> 
inline fun <K> ByteArray.distinctBy(
    selector: (Byte) -> K
): List<Byte> 
inline fun <K> ShortArray.distinctBy(
    selector: (Short) -> K
): List<Short> 
inline fun <K> IntArray.distinctBy(
    selector: (Int) -> K
): List<Int> 
inline fun <K> LongArray.distinctBy(
    selector: (Long) -> K
): List<Long> 
inline fun <K> FloatArray.distinctBy(
    selector: (Float) -> K
): List<Float> 
inline fun <K> DoubleArray.distinctBy(
    selector: (Double) -> K
): List<Double>
inline fun <K> BooleanArray.distinctBy(
    selector: (Boolean) -> K
): List<Boolean>
inline fun <K> CharArray.distinctBy(
    selector: (Char) -> K
): List<Char>

وستستدعى مع مجموعة:

inline fun <T, K> Iterable<T>.distinctBy(
    selector: (T) -> K
): List<T>

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

تُعاد قائمة تحتوي فقط على العناصر التي تعطي نتيجة مختلفة عند تطبيق الدالة selector عليها والموجودة في المصفوفة أو المجموعة المعطاة.

أمثلة

استخدام الدالة ()distinctBy مع المصفوفات: الحالة الأولى

تعرِّف الشيفرة الآتية مصفوفة باسم array باستخدام الدالة ()arrayOf ثم تعرف دالة باسم ()selector لاستعمالها مع الدالة ()distinctBy:

fun main(args: Array<String>) {
    val array = arrayOf(1, 2, 3, 4, 4, 5, 2, 6, 22)
    val selector: (Int) -> Int = { it + 10 }
    println(array.distinctBy(selector)) // [1, 2, 3, 4, 5, 6, 22]
}

استخدام الدالة ()distinctBy مع المصفوفات: الحالة الثانية

تعرِّف الشيفرة الآتية مصفوفة باسم arrayمكونة من تسعة أعداد باستخدام الدالة ()arrayOf ثم تعرف دالة باسم ()selector لاستعمالها مع الدالة ()distinctBy. لأنّ الدالة ()selector ستعيد نفس القيمة (0) على كل العناصر، فستعيد الدالة ()distinctBy عنصرًا واحدًا فقط (العنصر الأول):

fun main(args: Array<String>) {
    val array = arrayOf(1, 2, 3, 4, 4, 5, 2, 6, 22)
    val selector: (Int) -> Int = { it * 0 }
    
    println(array.distinctBy(selector)) // [1]
}

انظر أيضًا

مصادر