الفرق بين المراجعتين لصفحة: «Kotlin/collections/distinctBy»
جميل-بيلوني (نقاش | مساهمات) طلا ملخص تعديل |
جميل-بيلوني (نقاش | مساهمات) ط تدقيق الأمثلة. |
||
سطر 47: | سطر 47: | ||
تعرِّف الشيفرة الآتية [[Kotlin/Array|مصفوفة]] باسم <code>array</code> باستخدام الدالة <code>()arrayOf</code> ثم تعرف دالة باسم <code>()selector</code> لاستعمالها مع الدالة <code>()distinctBy</code>:<syntaxhighlight lang="kotlin"> | تعرِّف الشيفرة الآتية [[Kotlin/Array|مصفوفة]] باسم <code>array</code> باستخدام الدالة <code>()arrayOf</code> ثم تعرف دالة باسم <code>()selector</code> لاستعمالها مع الدالة <code>()distinctBy</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) | ||
val selector: (Int) -> Int = {it+ 10} | val selector: (Int) -> Int = { it + 10 } | ||
println(array.distinctBy(selector)) // [1, 2, 3, 4, 5, 6, 22] | println(array.distinctBy(selector)) // [1, 2, 3, 4, 5, 6, 22] | ||
} | } | ||
سطر 55: | سطر 55: | ||
تعرِّف الشيفرة الآتية [[Kotlin/Array|مصفوفة]] باسم <code>array</code>مكونة من تسعة أعداد باستخدام الدالة <code>()arrayOf</code> ثم تعرف دالة باسم <code>()selector</code> لاستعمالها مع الدالة <code>()distinctBy</code>. لأنّ الدالة <code>()selector</code> ستعيد نفس القيمة (<code>0</code>) على كل العناصر، فستعيد الدالة <code>()distinctBy</code> عنصرًا واحدًا فقط (العنصر الأول):<syntaxhighlight lang="kotlin"> | تعرِّف الشيفرة الآتية [[Kotlin/Array|مصفوفة]] باسم <code>array</code>مكونة من تسعة أعداد باستخدام الدالة <code>()arrayOf</code> ثم تعرف دالة باسم <code>()selector</code> لاستعمالها مع الدالة <code>()distinctBy</code>. لأنّ الدالة <code>()selector</code> ستعيد نفس القيمة (<code>0</code>) على كل العناصر، فستعيد الدالة <code>()distinctBy</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) | ||
val selector: (Int) -> Int = {it*0} | val selector: (Int) -> Int = { it * 0 } | ||
println(array.distinctBy(selector)) // [1 | |||
println(array.distinctBy(selector)) // [1] | |||
} | } | ||
</syntaxhighlight> | </syntaxhighlight> |
مراجعة 10:15، 5 يوليو 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>
وستستدعى مع مجموعة:
inline fun <T, K> Iterable<T>.distinctBy(
selector: (T) -> K
): List<T>
القيم المعادة
تُعاد قائمة تحتوي فقط على العناصر التي تعطي نتيجة مختلفة عند تطبيق الدالة selector
عليها والموجودة في المصفوفة أو المجموعة المعطاة.
أمثلة
استخدام الدالة ()distinctBy
مع المصفوفات: الحالة الأولى
تعرِّف الشيفرة الآتية مصفوفة باسم array
باستخدام الدالة ()arrayOf
ثم تعرف دالة باسم ()selector
لاستعمالها مع الدالة ()distinctBy
:
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
ستعيد نفس القيمة (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]
}
انظر أيضًا
- الدالة
distinct()
: تحذف العناصر المتكررة الموجودة في المصفوفة أو المجموعة التي استُدعيت معها وتعيد الناتج في قائمة. - الدالة
drop()
: تعيد قائمة تحوي جميع عناصر المصفوفة أو المجموعة التي استُدعيت معها باستثناء أولn
عنصر. - الدالة
elementAt()
: تعيد العنصر الموجود عند فهرس معين في المصفوفة أو المجموعة التي استُدعيت معها. - الدالة
count()
: تعيد عدد عناصر المصفوفة أو المجموعة أو القاموس التي استُدعيت معها.