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

من موسوعة حسوب
أنشأ الصفحة ب'<noinclude>{{DISPLAYTITLE: الدالة <code>distinct()‎</code> في لغة Kotlin}}</noinclude> تعيد الدالة<code>distinct()‎</code>عدد عناصر K...'
 
طلا ملخص تعديل
 
(7 مراجعات متوسطة بواسطة 3 مستخدمين غير معروضة)
سطر 1: سطر 1:
<noinclude>{{DISPLAYTITLE: الدالة <code>distinct()‎</code> في لغة Kotlin}}</noinclude>
<noinclude>{{DISPLAYTITLE: الدالة <code>distinct()‎</code> في Kotlin}}</noinclude>
تعيد الدالة<code>distinct()‎</code>عدد عناصر  [[Kotlin/Array|المصفوفة]] أو [[Kotlin/Array|المجموعة]] أو [[Kotlin/Array|القاموس]] التي استُدعيت عبرها، مع إمكانية تمرير دالة منطقية (<code>predicate</code>)  كمعامل (parameter)، وحينها ستعيد عدد العناصر التي تحقق الدالة المنطقية <code>predicate</code>.   
تحذف الدالة <code>distinct()‎</code> العناصر المتكررة الموجودة في [[Kotlin/Array|المصفوفة]] أو [[Kotlin/collections|المجموعة]] التي استُدعيت معها وتعيد الناتج في قائمة. تُرتَّب العناصر في القائمة الناتجة بنفس ترتيبها في المصفوفة أو المجموعة الأصليَّة.   


==البنية العامة==
== البنية العامة ==
في حال استدعاء الدالة <code>count()‎</code> عبر  [[Kotlin/Array|مصفوفة]] دون تمرير أي معامل (parameter) فستعيد عدد عناصر تلك [[Kotlin/Array|المصفوفة]].<syntaxhighlight lang="kotlin">
تستدعى الدالة <code>distinct()‎</code> مع [[Kotlin/Array|مصفوفة]]:<syntaxhighlight lang="kotlin">
inline fun <T> Array<out T>.count(): Int
fun <T> Array<out T>.distinct(): List<T>
inline fun ByteArray.count(): Int
fun ByteArray.distinct(): List<Byte>
inline fun ShortArray.count(): Int
fun ShortArray.distinct(): List<Short>
inline fun IntArray.count(): Int  
fun IntArray.distinct(): List<Int>
inline fun LongArray.count(): Int
fun LongArray.distinct(): List<Long>
inline fun FloatArray.count(): Int
fun FloatArray.distinct(): List<Float>
inline fun DoubleArray.count(): Int
fun DoubleArray.distinct(): List<Double>
inline fun BooleanArray.count(): Int
fun BooleanArray.distinct(): List<Boolean>
inline fun CharArray.count(): Int
fun CharArray.distinct(): List<Char>
</syntaxhighlight>
</syntaxhighlight>


في حال استدعاء الدالة <code>count()‎</code>  مع تمرير دالة منطقية (<code>predicate</code>)  كمعامل (parameter) فستعيد عدد العناصر التي تحقق الدالة المنطقية <code>predicate</code>.<syntaxhighlight lang="kotlin">
وتستدعى مع [[Kotlin/collections|مجموعة]]:<syntaxhighlight lang="kotlin">
inline fun <T> Array<out T>.count(
fun <T> Iterable<T>.distinct(): List<T>  
    predicate: (T) -> Boolean
): Int
inline fun ByteArray.count(predicate: (Byte) -> Boolean): Int (source)
inline fun ShortArray.count(
    predicate: (Short) -> Boolean
): Int
inline fun IntArray.count(predicate: (Int) -> Boolean): Int (source)
inline fun LongArray.count(predicate: (Long) -> Boolean): Int (source)
inline fun FloatArray.count(
    predicate: (Float) -> Boolean
): Int
inline fun DoubleArray.count(
    predicate: (Double) -> Boolean
): Int
inline fun BooleanArray.count(
    predicate: (Boolean) -> Boolean
): Int
inline fun CharArray.count(predicate: (Char) -> Boolean): Int (source)
inline fun <T> Iterable<T>.count(
    predicate: (T) -> Boolean
): Int
</syntaxhighlight>في حال استدعاء الدالة <code>count()‎</code> عبر  [[Kotlin/collections|مجموعة]] دون تمرير أي معامل (parameter) فستعيد عدد عناصر تلك [[Kotlin/Array|المجموعة]].<syntaxhighlight lang="kotlin">
fun <T> Iterable<T>.count(): Int
inline fun <T> Collection<T>.count(): Int
</syntaxhighlight>في حال استدعاء الدالة <code>count()‎</code> عبر  [[Kotlin/Map|قاموس]] دون تمرير أي معامل (parameter) فستعيد عدد عناصر ذلك [[Kotlin/Array|القاموس]].<syntaxhighlight lang="kotlin">
inline fun <K, V> Map<out K, V>.count(): Int
</syntaxhighlight>في حال استدعاء الدالة <code>count()‎</code> عبر  [[Kotlin/Map|قاموس]] مع تمرير دالة منطقية (<code>predicate</code>)  كمعامل (parameter) فستعيد عدد المداخل (entries) التي تحقق الدالة المنطقية <code>predicate</code>.


يُلاحَظ وجود الكلمة المفتاحية <code>inline</code> للدلالة على أن هذه الدالة مباشرة، وللمزيد من التفاصيل راجع <nowiki/>[[Kotlin/inline functions|توثيق الدوال المباشرة (inline functions)]].
</syntaxhighlight>


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


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

المراجعة الحالية بتاريخ 07:41، 8 سبتمبر 2018

تحذف الدالة distinct()‎ العناصر المتكررة الموجودة في المصفوفة أو المجموعة التي استُدعيت معها وتعيد الناتج في قائمة. تُرتَّب العناصر في القائمة الناتجة بنفس ترتيبها في المصفوفة أو المجموعة الأصليَّة.

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

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

fun <T> Array<out T>.distinct(): List<T> 
fun ByteArray.distinct(): List<Byte> 
fun ShortArray.distinct(): List<Short> 
fun IntArray.distinct(): List<Int> 
fun LongArray.distinct(): List<Long> 
fun FloatArray.distinct(): List<Float> 
fun DoubleArray.distinct(): List<Double> 
fun BooleanArray.distinct(): List<Boolean> 
fun CharArray.distinct(): List<Char>

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

fun <T> Iterable<T>.distinct(): List<T>

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

تُعاد قائمة تحتوي على عناصر المصفوفة أو المجموعة التي استُدعيت معها بعد حذف العناصر المتكررة.

أمثلة

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

تعرِّف الشيفرة الآتية مصفوفة باسم array باستخدام الدالة ()arrayOf ثم تستخدم الدالة ()count لحذف العناصر المتكررة:

fun main(args: Array<String>) {
    val array = arrayOf(1, 2, 3, 4, 4, 5, 2, 6, 22)
    println(array.distinct()) // [1, 2, 3, 4, 5, 6, 22]
}

انظر أيضًا

  • الدالة distinctBy()‎: تعيد قائمة تحتوي على العناصر الموجودة في المصفوفة أو المجموعة التي استُدعيت معها والتي تعطي نتيجة مختلفة عند تطبيق الدالة selector عليها فقط.  
  • الدالة copyOf()‎: تنسخ الدالة كامل المصفوفة التي استُدعيت معها أو جزءًا منها.
  • الدالة drop()‎: تعيد قائمة تحوي جميع عناصر المصفوفة أو المجموعة التي استُدعيت معها باستثناء أول n عنصر.
  • الدالة count()‎: تعيد عدد عناصر المصفوفة أو المجموعة أو الخريطة التي استُدعيت معها.
  • الخاصية lastIndex: تجلب فهرس (index) العنصر الأخير في المصفوفة أو القائمة.

مصادر