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

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


== البنية العامة ==
== البنية العامة ==
استدعاء الدالة <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>
</syntaxhighlight>


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


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


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

مراجعة 17:18، 13 مايو 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>

في حال استدعاء الدالة distinctBy()‎ عبر مجموعة.

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

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

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

أمثلة

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

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

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عليها، ولأنّ الدالة ()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, 2, 3, 4, 5, 6, 22]
}

انظر أيضًا

مصادر