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

من موسوعة حسوب
أنشأ الصفحة ب'<noinclude>{{DISPLAYTITLE: الدالة <code>distinctBy()‎</code> في لغة Kotlin}}</noinclude> تعيد الدالة<code>distinctBy()‎</code> Kotlin/List|ل...'
 
طلا ملخص تعديل
 
(6 مراجعات متوسطة بواسطة 3 مستخدمين غير معروضة)
سطر 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|المجموعة]] التي استُدعيت عبرها بدون تكرار مع احترام ظهور تلك العناصر في [[Kotlin/Array|المصفوفة]] أو [[Kotlin/Array|المجموعة]].
تعيد الدالة <code>distinctBy()‎</code> [[Kotlin/List|قائمة]] تحتوي على العناصر الموجودة في [[Kotlin/Array|المصفوفة]] أو [[Kotlin/Array|المجموعة]] التي استُدعيت معها والتي تعطي نتيجة مختلفة عند تطبيق الدالة <code>selector</code> عليها فقط. تُرتَّب العناصر في القائمة الناتجة بنفس ترتيبها في المصفوفة أو المجموعة الأصليَّة.


== البنية العامة ==
== البنية العامة ==
استدعاء الدالة <code>count()‎</code> عبر  [[Kotlin/Array|مصفوفة]].<syntaxhighlight lang="kotlin">
تستدعى الدالة <code>distinctBy()‎</code> مع [[Kotlin/Array|مصفوفة]]:<syntaxhighlight lang="kotlin">
fun <T> Array<out T>.distinct(): List<T>  
inline fun <T, K> Array<out T>.distinctBy(
fun ByteArray.distinct(): List<Byte>  
    selector: (T) -> K
fun ShortArray.distinct(): List<Short>  
): List<T>  
fun IntArray.distinct(): List<Int>  
inline fun <K> ByteArray.distinctBy(
fun LongArray.distinct(): List<Long>  
    selector: (Byte) -> K
fun FloatArray.distinct(): List<Float>  
): List<Byte>  
fun DoubleArray.distinct(): List<Double>  
inline fun <K> ShortArray.distinctBy(
fun BooleanArray.distinct(): List<Boolean>  
    selector: (Short) -> K
fun CharArray.distinct(): List<Char>  
): 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>
 
</syntaxhighlight>
 
وستستدعى مع [[Kotlin/collections|مجموعة]]:<syntaxhighlight lang="kotlin">
inline fun <T, K> Iterable<T>.distinctBy(
    selector: (T) -> K
): List<T>
</syntaxhighlight>
</syntaxhighlight>


في حال استدعاء الدالة <code>count()‎</code> عبر  [[Kotlin/collections|مجموعة]].<syntaxhighlight lang="kotlin">
== المعاملات ==
fun <T> Iterable<T>.distinct(): List<T>


</syntaxhighlight>
=== <code>selector</code> ===
الدالة المراد تطبيقها على كل عنصر من عناصر [[Kotlin/Array|المصفوفة]] أو [[Kotlin/Array|المجموعة]] المعطاة.


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


[[Kotlin/List|لائحة]] تحتوي عناصر  [[Kotlin/Array|المصفوفة]] أو [[Kotlin/Array|المجموعة]] التي استُدعيت عبرها بدون تكرار مع احترام ظهور تلك العناصر في [[Kotlin/Array|المصفوفة]] أو [[Kotlin/Array|المجموعة]].
تُعاد [[Kotlin/List|قائمة]] تحتوي فقط على العناصر التي تعطي نتيجة مختلفة عند تطبيق الدالة <code>selector</code> عليها والموجودة في المصفوفة أو المجموعة المعطاة.
==أمثلة==
==أمثلة==
===استخدام الدالة <code>()distinctBy</code> مع المصفوفات  ===
مثالٌ على استعمال الدالة <code>()distinctBy</code>:<syntaxhighlight lang="kotlin">
تعرف الشيفرة الآتية [[Kotlin/Array|مصفوفة]] باسم <code>array</code>مكونة من تسعة أعداد باستخدام الدالة <code>()arrayOf</code>، ثم تستخدم الدالة <code>()distinctBy</code> للحصول على لائحة تضم العناصر غير المكررة لتلك [[Kotlin/Array|المصفوفة]] ثم تطبع الناتج:<syntaxhighlight lang="kotlin">
fun main(args: Array<String>) {
fun main(args: Array<String>) {
val array = arrayOf(1,2,3,4,4,5,2,6,22)
    val array = arrayOf(1, 2, 3, 4, 4, 5, 2, 6, 22)
println(array.distinct()) // [1, 2, 3, 4, 5, 6, 22]
    val selector1: (Int) -> Int = { it + 10 }
    val selector2: (Int) -> Int = { it * 0 }
 
    println(array.distinctBy(selector1)) // [1, 2, 3, 4, 5, 6, 22]   
    println(array.distinctBy(selector2)) // [1]
}
}
</syntaxhighlight>
</syntaxhighlight>
==انظر أيضًا  ==
==انظر أيضًا  ==
* صفحة [[Kotlin/Array|المصفوفات]] (Arrays).
* الدالة <code>[[Kotlin/collections/distinct|distinct()]]</code>‎: تحذف  العناصر المتكررة الموجودة في [[Kotlin/Array|المصفوفة]] أو [[Kotlin/collections|المجموعة]] التي استُدعيت معها وتعيد الناتج في قائمة.
* صفحة [[Kotlin/Array|المجموعات]] (Collections).
* الدالة <code>[[Kotlin/collections/drop|drop()‎]]</code>: تعيد [[Kotlin/List|قائمة]] تحوي جميع عناصر [[Kotlin/Array|المصفوفة]] أو [[Kotlin/Array|المجموعة]] التي استُدعيت معها باستثناء أول <code>n</code> عنصر.
 
* الدالة <code>[[Kotlin/collections/elementAt|elementAt()‎]]</code>: تعيد العنصر الموجود عند فهرس معين في <nowiki/>[[Kotlin/Array|المصفوفة]] أو <nowiki/>[[Kotlin/Array|المجموعة]] التي استُدعيت معها.
* <code>[[Kotlin/collections/count|count()]]</code>‎: تعيد عدد عناصر  [[Kotlin/Array|المصفوفة]] أو [[Kotlin/Array|المجموعة]] أو [[Kotlin/Array|القاموس]] التي استُدعيت عبرها.
* الدالة <code>[[Kotlin/collections/count|count()]]</code>‎: تعيد عدد عناصر  [[Kotlin/Array|المصفوفة]] أو [[Kotlin/Array|المجموعة]] أو [[Kotlin/Array|القاموس]] التي استُدعيت معها.


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

المراجعة الحالية بتاريخ 07:43، 8 سبتمبر 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

الدالة المراد تطبيقها على كل عنصر من عناصر المصفوفة أو المجموعة المعطاة.

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

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

أمثلة

مثالٌ على استعمال الدالة ()distinctBy:

fun main(args: Array<String>) {
    val array = arrayOf(1, 2, 3, 4, 4, 5, 2, 6, 22)
    val selector1: (Int) -> Int = { it + 10 }
    val selector2: (Int) -> Int = { it * 0 }

    println(array.distinctBy(selector1)) // [1, 2, 3, 4, 5, 6, 22]    
    println(array.distinctBy(selector2)) // [1]
}

انظر أيضًا

مصادر