الفرق بين المراجعتين ل"Kotlin/collections/distinctBy"
(أنشأ الصفحة ب'<noinclude>{{DISPLAYTITLE: الدالة <code>distinctBy()</code> في لغة Kotlin}}</noinclude> تعيد الدالة<code>distinctBy()</code> Kotlin/List|ل...') |
|||
سطر 1: | سطر 1: | ||
<noinclude>{{DISPLAYTITLE: الدالة <code>distinctBy()</code> في لغة Kotlin}}</noinclude> | <noinclude>{{DISPLAYTITLE: الدالة <code>distinctBy()</code> في لغة Kotlin}}</noinclude> | ||
− | تعيد الدالة<code>distinctBy()</code> [[Kotlin/List|لائحة]] تحتوي عناصر [[Kotlin/Array|المصفوفة]] أو [[Kotlin/Array|المجموعة]] التي استُدعيت عبرها | + | تعيد الدالة<code>distinctBy()</code> [[Kotlin/List|لائحة]] تحتوي عناصر [[Kotlin/Array|المصفوفة]] أو [[Kotlin/Array|المجموعة]] التي استُدعيت عبرها والتي تختلف نتائج تطبيق الدالة (<code>selector</code>) عليها، ومع احترام ظهور تلك العناصر في <nowiki/>[[Kotlin/Array|المصفوفة]] أو<nowiki/>[[Kotlin/Array|المجموعة]]. |
== البنية العامة == | == البنية العامة == | ||
− | استدعاء الدالة <code> | + | استدعاء الدالة <code>distinctBy()</code> عبر [[Kotlin/Array|مصفوفة]].<syntaxhighlight lang="kotlin"> |
− | fun <T> Array<out T>. | + | inline fun <T, K> Array<out T>.distinctBy( |
− | fun ByteArray. | + | selector: (T) -> K |
− | fun ShortArray. | + | ): List<T> |
− | fun IntArray. | + | inline fun <K> ByteArray.distinctBy( |
− | fun LongArray. | + | selector: (Byte) -> K |
− | fun FloatArray. | + | ): List<Byte> |
− | fun DoubleArray. | + | inline fun <K> ShortArray.distinctBy( |
− | fun BooleanArray. | + | selector: (Short) -> K |
− | fun CharArray. | + | ): 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> | ||
+ | |||
</syntaxhighlight> | </syntaxhighlight> | ||
− | في حال استدعاء الدالة <code> | + | في حال استدعاء الدالة <code>distinctBy()</code> عبر [[Kotlin/collections|مجموعة]].<syntaxhighlight lang="kotlin"> |
− | fun <T> Iterable<T>. | + | inline fun <T, K> Iterable<T>.distinctBy( |
− | + | selector: (T) -> K | |
+ | ): List<T> | ||
</syntaxhighlight> | </syntaxhighlight> | ||
== القيم المعادة == | == القيم المعادة == | ||
− | [[Kotlin/List|لائحة]] تحتوي عناصر [[Kotlin/Array|المصفوفة]] أو [[Kotlin/Array|المجموعة]] التي استُدعيت عبرها | + | [[Kotlin/List|لائحة]] تحتوي عناصر [[Kotlin/Array|المصفوفة]] أو [[Kotlin/Array|المجموعة]] التي استُدعيت عبرها والتي تختلف نتائج تطبيق دالة (<code>selector</code>) عليها. |
==أمثلة== | ==أمثلة== | ||
− | ===استخدام الدالة <code>()distinctBy</code> مع المصفوفات === | + | ===استخدام الدالة <code>()distinctBy</code> مع المصفوفات: الحالة الأولى === |
− | تعرف الشيفرة الآتية [[Kotlin/Array|مصفوفة]] باسم <code>array</code>مكونة من تسعة أعداد باستخدام الدالة <code>()arrayOf</code>، ثم تستخدم الدالة <code>()distinctBy</code> للحصول على لائحة تضم العناصر | + | تعرف الشيفرة الآتية [[Kotlin/Array|مصفوفة]] باسم <code>array</code>مكونة من تسعة أعداد باستخدام الدالة <code>()arrayOf</code>، ثم تعرف دالة باسم <code>()selector</code>، ثم تستخدم الدالة <code>()distinctBy</code> للحصول على لائحة تضم العناصر التي تختلف نتائج تطبيق الدالة <code>()selector</code>عليها، ثم تطبع الناتج:<syntaxhighlight lang="kotlin"> |
fun main(args: Array<String>) { | fun main(args: Array<String>) { | ||
val array = arrayOf(1,2,3,4,4,5,2,6,22) | val array = arrayOf(1,2,3,4,4,5,2,6,22) | ||
− | println(array. | + | val selector: (Int) -> Int = {it+ 10} |
+ | println(array.distinctBy(selector)) // [1, 2, 3, 4, 5, 6, 22] | ||
+ | } | ||
+ | </syntaxhighlight> | ||
+ | ===استخدام الدالة <code>()distinctBy</code> مع المصفوفات: الحالة الثانية === | ||
+ | تعرف الشيفرة الآتية [[Kotlin/Array|مصفوفة]] باسم <code>array</code>مكونة من تسعة أعداد باستخدام الدالة <code>()arrayOf</code>، ثم تعرف دالة باسم <code>()selector</code>، ثم تستخدم الدالة <code>()distinctBy</code> للحصول على لائحة تضم العناصر التي تختلف نتائج تطبيق الدالة <code>()selector</code>عليها، ولأنّ الدالة <code>()selector</code> ستعيد نفس القيمة (<code>0</code>) على كل العناصر، فستعيد الدالة <code>()distinctBy</code> عنصرًا واحدًا فقط (العنصر الأول):<syntaxhighlight lang="kotlin"> | ||
+ | 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] | ||
} | } | ||
</syntaxhighlight> | </syntaxhighlight> | ||
==انظر أيضًا == | ==انظر أيضًا == | ||
− | * | + | * <code>[[Kotlin/collections/distinct|distinct()]]</code>: تعيد <nowiki/>[[Kotlin/List|لائحة]] تحتوي عناصر <nowiki/>[[Kotlin/Array|المصفوفة]] أو <nowiki/>[[Kotlin/Array|المجموعة]] التي استُدعيت عبرها بدون تكرار مع احترام ظهور تلك العناصر في <nowiki/>[[Kotlin/Array|المصفوفة]] أو<nowiki/>[[Kotlin/Array|المجموعة]]. |
− | |||
− | |||
* <code>[[Kotlin/collections/count|count()]]</code>: تعيد عدد عناصر [[Kotlin/Array|المصفوفة]] أو [[Kotlin/Array|المجموعة]] أو [[Kotlin/Array|القاموس]] التي استُدعيت عبرها. | * <code>[[Kotlin/collections/count|count()]]</code>: تعيد عدد عناصر [[Kotlin/Array|المصفوفة]] أو [[Kotlin/Array|المجموعة]] أو [[Kotlin/Array|القاموس]] التي استُدعيت عبرها. | ||
==مصادر== | ==مصادر== | ||
− | *[https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.collections/distinct.html الدالة distinctBy() في التوثيق الرسميّ للمكتبة القياسيّة في لغة Kotlin.] | + | *[https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.collections/distinct-by.html الدالة distinctBy() في التوثيق الرسميّ للمكتبة القياسيّة في لغة Kotlin.] |
[[تصنيف:Kotlin]] | [[تصنيف:Kotlin]] | ||
[[تصنيف:Kotlin Functions]] | [[تصنيف:Kotlin Functions]] |
مراجعة 17:18، 13 مايو 2018
تعيد الدالة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()
: تعيد عدد عناصر المصفوفة أو المجموعة أو القاموس التي استُدعيت عبرها.