الدالة distinctBy()
في لغة Kotlin
تعيد الدالة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]
}
انظر أيضًا
distinct()
: تعيد لائحة تحتوي عناصر المصفوفة أو المجموعة التي استُدعيت عبرها بدون تكرار مع احترام ظهور تلك العناصر في المصفوفة أوالمجموعة.count()
: تعيد عدد عناصر المصفوفة أو المجموعة أو القاموس التي استُدعيت عبرها.