الدالة distinct()
في لغة Kotlin
تعيد الدالة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
}