الدالة count()‎ في Kotlin

من موسوعة حسوب
< Kotlin‏ | collections
مراجعة 11:35، 30 أغسطس 2018 بواسطة عبد اللطيف ايمش (نقاش | مساهمات) (استبدال النص - 'Kotlin Functions' ب'Kotlin Function')
اذهب إلى التنقل اذهب إلى البحث

تعيد الدالة count()‎ عدد عناصر المصفوفة أو المجموعة أو الخريطة التي استُدعيت معها. يمكن تمرير دالة منطقية كمعامل إلى هذه الدالة لعد العناصر التي تحقق شرطًا معينًّا.

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

إن استدعيت الدالة count()‎ مع مصفوفة دون تمرير أي معامل، فستعيد عدد عناصر هذه المصفوفة.

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

وإن استدعيت مع تمرير الدالة 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()‎ مع مجموعة دون تمرير أي معامل، فستعيد عدد عناصر تلك المجموعة.

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

وفي حال استدعيت مع خريطة (map) دون تمرير أي معامل، فستعيد عدد أزواج تلك الخريطة.

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

إن استدعيت الدالة count()‎ مع خريطة ومُرِّرت الدالة predicate إليها، فستعيد عدد الأزواج التي تحقِّق الدالة predicate المعطاة.

inline fun <K, V> Map<out K, V>.count(
    predicate: (Entry<K, V>) -> Boolean
): Int (source)

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

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

يُعاد عدد جميع عناصر المصفوفة أو المجموعة أو الخريطة التي استُدعيت معها إن لم يعطَ أي معامل، أو عدد العناصر التي تحقق شرطًا معينًّا إن مرَّرت الدالة predicate.

أمثلة

استخدام الدالة ()count لعد جميع العناصر

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

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

    println(array.count()) // 4
}

استخدام الدالة ()count لعد عناصر محدّدة

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

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

    println(array.count(predicate)) // 2
}

انظر أيضًا

  • الخاصيّة size‎: تمثِّل عدد العناصر الموجودة في المصفوفة (array).
  • الخاصية lastIndex: تجلب فهرس (index) العنصر الأخير في المصفوفة أو القائمة.
  • الدالة copyOf()‎: تنسخ الدالة كامل المصفوفة التي استُدعيت معها أو جزءًا منها. 
  • الدالة elementAt()‎: تعيد العنصر الموجود عند فهرس معين في المصفوفة أو المجموعة التي استُدعيت معها.

مصادر