الدالة distinct()‎ في لغة Kotlin

من موسوعة حسوب
مراجعة 16:45، 13 مايو 2018 بواسطة محمد-بغات (نقاش | مساهمات) (أنشأ الصفحة ب'<noinclude>{{DISPLAYTITLE: الدالة <code>distinct()‎</code> في لغة Kotlin}}</noinclude> تعيد الدالة<code>distinct()‎</code>عدد عناصر K...')
(فرق) → مراجعة أقدم | المراجعة الحالية (فرق) | مراجعة أحدث ← (فرق)

تعيد الدالةdistinct()‎عدد عناصر المصفوفة أو المجموعة أو القاموس التي استُدعيت عبرها، مع إمكانية تمرير دالة منطقية (predicate) كمعامل (parameter)، وحينها ستعيد عدد العناصر التي تحقق الدالة المنطقية predicate.

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

في حال استدعاء الدالة count()‎ عبر مصفوفة دون تمرير أي معامل (parameter) فستعيد عدد عناصر تلك المصفوفة.

inline fun <T> Array<out T>.count(): Int 
inline fun ByteArray.count(): Int 
inline fun ShortArray.count(): Int 
inline fun IntArray.count(): Int 
inline fun LongArray.count(): Int 
inline fun FloatArray.count(): Int 
inline fun DoubleArray.count(): Int 
inline fun BooleanArray.count(): Int 
inline fun CharArray.count(): Int

في حال استدعاء الدالة count()‎  مع تمرير دالة منطقية (predicate) كمعامل (parameter) فستعيد عدد العناصر التي تحقق الدالة المنطقية predicate.

inline fun <T> Array<out T>.count(
    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

في حال استدعاء الدالة count()‎ عبر مجموعة دون تمرير أي معامل (parameter) فستعيد عدد عناصر تلك المجموعة.

fun <T> Iterable<T>.count(): Int 
inline fun <T> Collection<T>.count(): Int

في حال استدعاء الدالة count()‎ عبر قاموس دون تمرير أي معامل (parameter) فستعيد عدد عناصر ذلك القاموس.

inline fun <K, V> Map<out K, V>.count(): Int

في حال استدعاء الدالة count()‎ عبر قاموس مع تمرير دالة منطقية (predicate) كمعامل (parameter) فستعيد عدد المداخل (entries) التي تحقق الدالة المنطقية predicate.

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

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

عدد عناصر المصفوفة أو المجموعة أو القاموس التي استُدعيت عبرها، مع إمكانية تمرير دالة منطقية (predicate) كمعامل (parameter)، وحينها ستعيد عدد العناصر التي تحقق الدالة المنطقية predicate.

أمثلة

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

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

 fun main(args: Array<String>) {
val array = arrayOf(1,2,3,4)
println(array.count()) // 4
}

ستخدام الدالة ()count مع المصفوفات مع تمرير دالة منطقية كمعامل

تعرف الشيفرة الآتية مصفوفة باسم arrayمكونة من أربعة أعداد باستخدام الدالة ()arrayOf، ثم تستخدم الدالة ()count للحصول على عدد عناصر تلك المصفوفة الأصغر من 3 عبر تمرير الدالة المنطقية predicate ثم تطبع الناتج:

 fun main(args: Array<String>) {
val array = arrayOf(1,2,3,4)
val predicate: (Int) -> Boolean = { it < 3}
println(array.count(predicate)) // 2
}

انظر أيضًا

مصادر